Mongoose完整测试搜索不起作用

时间:2017-03-22 23:37:43

标签: node.js mongodb mongoose

我试图在两个字段(正文和标题)中对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。

1 个答案:

答案 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中创建文本索引