我的架构有一个 ObjectId 数组,它们是对另一个架构的引用。我想要的是使用 mongodb 的多键索引方法来索引这个数组条目。
所以给定一个ObjectId中的某些文档的产品目录集合,我可以列出我当前集合中具有给定的所有文档ObjectId in the _pro_cat field.
我对在猫鼬模式声明中声明该字段的确切方式感到困惑,这就是我正在尝试的:
_pro_cat: { type: [mongoose.Schema.Types.ObjectId], ref: 'ProductCat', index: true }
_pro_cat: [{ type: mongoose.Schema.Types.ObjectId, ref: 'ProductCat', index: true }]
该藏品的名称为“卖家”。我正在通过使用架构中的引用来建立关系,实际字段值是一个数组,每个类型为 ObjectId,这将是其他集合(在本例中为 ProductCat)中文档的 ObjectId。如果我索引该字段,即 _pro_cat,然后给定 ProductCat 集合中文档的 ObjectId,我将能够找到 Seller 集合中在其数组字段 _pro_cat 中给出了 ObjectId 的所有文档。
我想我可能需要调用一个单独的索引函数。但我认为这是字段级索引,因此可能不需要。
我怀疑后者仅适用于子文档而不适用于参考文献。如果有人能解释一下,我将不胜感激。谢谢。
附带问题:[已解决]在 mongodb 文档中,它说多键索引是自动的。多键索引 http://docs.mongodb.org/manual/core/index-multikey/。这是否意味着如果使用上述方法对该字段进行索引,那么 mongo 将识别该字段是一个数组并使用多键索引。或者这是否意味着所有数组类型的字段都将被索引,而不需要显式地告诉它索引。
多谢。
related https://stackoverflow.com/questions/10568281/mongoose-using-populate-on-an-array-of-objectid/