我正在使用Mongoose的Node.js应用程序中构建搜索功能,在Mongo中创建一个全文搜索索引:
postSchema = mongoose.Schema({
xx : String
.......
}).index({
'xx':'text'
});
Post = mongoose.model('Post',postSchema);
按如下方式执行搜索:
find = {'$text':{'$search':query}};
findScore = {'score':{'$meta':'textScore'}};
sort = {'score': {'$meta':'textScore'} };
Post.find(find, findScore).sort(sort).exec(function (err, data) {
if (err){
logging.log(err);
} else {
logging.log(data);
}
});
运行程序时,出现以下错误: '无法执行查询:错误处理查询\ n计划程序返回错误:$ text query需要一个文本索引'
任何帮助都将不胜感激。
答案 0 :(得分:1)
一个集合最多可以有一个文本索引。您需要检查以前创建的任何文本索引。