我试图在两个字段(正文和标题)中对MongoDB进行全文搜索。
型号:
var newsSchema = new mongoose.Schema({
title: String,
body: String,
tags: Array,
date: Date
});
newsSchema.index({body: 1, title: -1});
var newsModel = mongoose.model('News', newsSchema);
请求:
var search_text = 'test';
newsModel.find({
$text: {
$search: search_text
}
}).then((news) => {
res.send(JSON.stringify(news));
}).catch((err) => {
res.send(JSON.stringify(err));
});
但我收到错误text index required for $text query
。有什么问题?
MongoDB版本3.2.8。
答案 0 :(得分:1)
您需要为您尝试查询的字段创建文本索引。 有关详细信息,请参阅此https://docs.mongodb.com/v3.2/core/index-text/#create-text-index。另请参阅我的一个项目中的文件https://github.com/gabesoft/dask/blob/master/components/rss/post-model.js,了解如何在mongoose中创建文本索引