在 mongoose 中使用 mongodb 多键索引方法索引引用数组

vin*_*nit 3 mongoose mongodb node.js

我的架构有一个 ObjectIds 数组,它们是另一个架构的引用。我想要的是使用 mongodb 的多键索引方法来索引这个数组条目。因此,给定ProductCat集合中某个文档的ObjectId,我可以列出当前集合中在_pro_cat字段中具有给定ObjectId 的所有文档。

我对我应该在猫鼬模式声明中声明该字段的确切方式感到困惑,这是我正在尝试的:

_pro_cat: { type: [mongoose.Schema.Types.ObjectId], ref: 'ProductCat', index: true }

_pro_cat: [{ type: mongoose.Schema.Types.ObjectId, ref: 'ProductCat', index: true }]
Run Code Online (Sandbox Code Playgroud)

该系列的名称是卖家。我通过使用架构中的引用来建立关系,实际字段值是一个数组,每个类型为 ObjectId,这将是另一个集合(在本例中为 ProductCat)中文档的 ObjectId。如果我索引这个字段,即。_pro_cat,然后在 ProductCat 集合中给定一个文档的 ObjectId,我将能够找到在其数组字段 _pro_cat 中给出 ObjectId 的卖方集合中的所有文档。

我想我可能需要调用一个单独的索引函数。但我认为这是一个字段级索引,所以可能不需要。

我怀疑后者仅适用于子文档而不适用于参考文献。如果有人能对此有所了解,将不胜感激。谢谢。

附带问题:[已解决] 在 mongodb 文档中,它说多键索引是自动的。多键索引。这是否意味着如果该字段被索引,使用上述方法,那么 mongo 将识别该字段是一个数组并使用多键索引。OR 是否意味着所有数组类型的字段都将被索引,而无需明确告诉它索引。

非常感谢。

有关的