对不起,如果这是重复的问题,但我没有找到解决方案。
然而......我正试图在mongodb中进行文字搜索。Like this ($meta)
我为我的收藏中的字段制作了索引,标记为" text"。但我有以下错误:
MongoError: must have $meta projection for all $meta sort keys
以下是代码:
var query = {
description : {
$regex : new RegExp('\^\.\*(' + ('abaaba|abadaba|woobydooby') + ')\.\*\$', 'g', 'i')
}
};
var sort = { score: { $meta: 'textScore' } };
var limit = 50;
Collection
.find(query)
.sort(sort)
.limit(limit)
.exec(function (err, records) {
if (err) {
console.log(err);
} else {
console.log(records);
}
});
我犯了错误?
MongoDB shell version v3.6.2
Node v. 8.9.4
答案 0 :(得分:0)
您必须在查询中包含一个得分$ meta项目,如下所示:
var query = {
description : {
$regex : new RegExp('\^\.\*(' + ('abaaba|abadaba|woobydooby') + ')\.\*\$', 'g', 'i')
},
{
score : {$meta : "textScore" }
}
};