我想通过firstName和lastName属性的全文搜索来搜索我的User集合。
我像这样创建我的索引:
//connect to connector
server.datasources.db.connector.connect(function (err, db) {
//create index on firstName and lastName
db.collection('User').createIndex(
{ firstName: "text", lastName: "text" },
function (err) {
if (!err) {
//run autoupdate on each model
Promise.each(server.models(), function (model) {
if (model.dataSource) {
var autoupdate = Promise.promisify(model.dataSource.autoupdate);
if (autoupdate) {
console.log("running autoupdate on model: " + model.modelName);
return autoupdate.call(model.dataSource, model.modelName);
}
}
});
}
else {
console.log(err);
}
});
});
但是当我在数据库中查询搜索字符串时,我总是通过直接访问获得零结果:
var mongodb = models.User.getDataSource().connector.collection(models.User.modelName);
mongodb.find({ $text: { $search: "Test" } },
function (err, resp) {
resp.toArray(function (err, docs) {
//docs always empty
cb(null, docs);
});
});
或者当我使用Angular客户端时,我得到每个条目:
User.find({ where: { '$text': { search: "Test" } } }).$promise.then(function (resp) {
console.log(resp)
});
我缺少什么?