我的模式包含一个ObjectId数组,这些ObjectId是另一个模式的引用。我想使用mongodb的多键索引方法来索引这个数组条目。这样,给定ProductCat集合中某个文档的ObjectId,我就可以列出当前集合中所有具有_pro_cat字段中给定ObjectId的文档。
我对如何在mongoose模式声明中精确声明该字段感到困惑。以下是我的尝试:
这个集合的名称是"卖家"。我在模式中使用引用来建立关系,实际字段值是一个数组,每个元素都是类型为ObjectId的对象ID,它将是另一个集合(在这种情况下是ProductCat)的文档的对象ID。如果我对这个字段即"_pro_cat"建立索引,那么给定ProductCat集合中的一个文档的ObjectId,我就能够找到所有在Seller集合中具有该ObjectId的数组字段"_pro_cat"的文档。
我认为我可能需要调用一个单独的索引函数。但我认为这是一个字段级别的索引,所以可能不需要。
我怀疑后者只适用于子文档,而不适用于引用。如果有人能够解答这个问题,我会非常感激。谢谢。
附加问题: [已解决] 在mongodb文档中,它说多键索引是自动的。multikey indexing。这是否意味着如果使用上述方法对字段进行索引,那么mongo将识别该字段是一个数组并使用多键索引。还是说所有的数组字段都将被索引,而不需要明确告诉它要索引哪些字段。
太感谢了。
我对如何在mongoose模式声明中精确声明该字段感到困惑。以下是我的尝试:
_pro_cat: { type: [mongoose.Schema.Types.ObjectId], ref: 'ProductCat', index: true }
_pro_cat: [{ type: mongoose.Schema.Types.ObjectId, ref: 'ProductCat', index: true }]
这个集合的名称是"卖家"。我在模式中使用引用来建立关系,实际字段值是一个数组,每个元素都是类型为ObjectId的对象ID,它将是另一个集合(在这种情况下是ProductCat)的文档的对象ID。如果我对这个字段即"_pro_cat"建立索引,那么给定ProductCat集合中的一个文档的ObjectId,我就能够找到所有在Seller集合中具有该ObjectId的数组字段"_pro_cat"的文档。
我认为我可能需要调用一个单独的索引函数。但我认为这是一个字段级别的索引,所以可能不需要。
我怀疑后者只适用于子文档,而不适用于引用。如果有人能够解答这个问题,我会非常感激。谢谢。
附加问题: [已解决] 在mongodb文档中,它说多键索引是自动的。multikey indexing。这是否意味着如果使用上述方法对字段进行索引,那么mongo将识别该字段是一个数组并使用多键索引。还是说所有的数组字段都将被索引,而不需要明确告诉它要索引哪些字段。
太感谢了。
{{链接1:相关}}