如何在MeteorJs中使用带有_ensureIndex和SimpleSchema的$ text $ search?

时间:2016-12-27 13:59:57

标签: mongodb meteor simple-schema

我在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

有什么想法吗?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您想要使用我建议的相同查询搜索多个字段:

_ensureIndex({
    "var1":"text",
    "var2.name":"text"
  })

我还要确保所有指定的字段都是字符串(通常如果var2.name是String,则var2不是 - 不确定这是否必要,具体取决于您的架构,但可能更好)

答案 1 :(得分:0)

试试这个:

App.Collections.Observations._ensureIndex({'var2.name': 1});