我在MeteorJs中使用带有_ensureIndex和SimpleSchema的$ text $ search进行搜索没有结果。
mycollection.js
var1: {
type: String
},
...
var2: {
type: new SimpleSchema({
_id: {
type: String
},
name: {
type: String
}
}),
},
search.js
results = myCollection.find({$text: {$search: searchText}});
此作品
myCollection._ensureIndex({var1: 'text'});
有了这个,我没有结果:为什么?
myCollection._ensureIndex({var2: 'text'}); // here, I have no result
myCollection._ensureIndex({var2.name: 'text'}); // here, I have an error on console
有什么想法吗?
谢谢
答案 0 :(得分:1)
如果您想要使用我建议的相同查询搜索多个字段:
_ensureIndex({
"var1":"text",
"var2.name":"text"
})
我还要确保所有指定的字段都是字符串(通常如果var2.name是String,则var2不是 - 不确定这是否必要,具体取决于您的架构,但可能更好)
答案 1 :(得分:0)
试试这个:
App.Collections.Observations._ensureIndex({'var2.name': 1});