我需要帮助来解决此解决方案。 我在节点js中有这样的结构(我用猫鼬):
var TestSchema = new mongoose.Schema({
title: {
type: String,
trim: true,
},
refBusinesId: {
type: ObjectId,
required: true,
},
})
TestSchema.index({ title: 'text' });
我使用下面的代码,一切都很好:
await Test.find({ refBusinesId: ID, $text: { $search: TEXT} })
但是有几个问题适合我,我正在寻找问题的答案,
我在MongoDB Compass中查看了该查询的结果,在我看来,该查询未完全索引(参见照片)
我想使用公司ID和$ text(标题字段)在公司中进行搜索,我想知道是否有一种方法可以在此查询中实现最佳性能的索引编制?
答案 0 :(得分:0)
我怀疑您会需要像{ refBusinesId: 1, title: 'text' }
这样的复合索引,以便mongo只能查看相关的业务文档以进行标题搜索。
请注意,集合一次只能有1个文本索引,因此,如果要添加此索引,则需要删除现有的文本索引。
https://docs.mongodb.com/manual/core/index-text/具有有关文本索引,带有复合索引的文本索引等的更多详细信息。