我的模式有一个ObjectIds数组,它引用了另一个模式 . 我想要的是使用mongodb的多键索引方法索引此数组条目 . 因此,如果给出 ProductCat 集合中的某个文档 ObjectId ,我可以列出当前集合中 _pro_cat 字段中给定 ObjectId 的所有文档 .
我对我应该声明字段的确切方式感到困惑,在mongoose模式声明中,这是我正在尝试的:
_pro_cat: { type: [mongoose.Schema.Types.ObjectId], ref: 'ProductCat', index: true }
_pro_cat: [{ type: mongoose.Schema.Types.ObjectId, ref: 'ProductCat', index: true }]
这个系列的名称是卖家 . 我正在 Build 关系,通过使用模式中的引用,实际字段值是一个数组,每个类型为ObjectId,它将是另一个Collection(本例中为ProductCat)中文档的ObjectIds . 如果我索引这个字段,即.. _pro_cat,然后给出ProductCat Collection中文档的ObjectId,我将能够找到Seller集合中已在其数组字段_pro_cat中给出ObjectId的所有文档 .
我想我可能要调用一个单独的索引函数 . 但我认为这是一个字段级索引,所以可能不需要它 .
我怀疑后者仅适用于子文档而不适用于参考文献 . 非常感谢,如果有人能够阐明它 . 谢谢 .
Side Question: [RE-SOLVED] 在mongodb文档中,它表示多键索引是自动的 . multikey indexing . 这是否意味着如果使用上述方法索引该字段,则mongo将识别该字段是一个数组并使用多键索引 . 或者它是否意味着所有数组类型的字段都将被索引,而无需明确告诉它索引 .
非常感谢 .
1 回答
Multikey Indexing means 如果告诉mongo索引字段,则会对数组字段中的每个项编制索引 .
它 does not mean 所有数组字段都自动编入索引,而无需明确告诉mongo索引该字段 .