此代码转储到异常
self.staticVars.Model
.find({shortAddress: {$text : { $search: data.text }}, _town: data._town},{limit: 10})
.populate('_street _district')
.sort({house: 1})
.exec(callback);
异常
Can't use $text with String
模型
shortAddress: {
type: String
},
索引
collection.ensureIndex({fullAddress: 'text', shortAddress: 'text'}, { default_language: "russian" },function(){});
答案 0 :(得分:4)
查看docs您无法为文本搜索指定字段,它将搜索所有索引字段,因此在您的情况下,它将搜索fullAddress和shortAddress返回在这两个字段中匹配的文档。
您的查询必须是:
self.staticVars.Model
.find({$text : { $search: data.text }, _town: data._town},{limit: 10})
.populate('_street _district')
.sort({house: 1})
.exec(callback);
现在应该返回正确的数据。