用于全文搜索的Mongoose索引

时间:2016-11-15 14:22:03

标签: node.js mongodb mongoose

我似乎无法找到我的错误。

如果有人能指出我正确的方向,那就太棒了:

我的架构:

var postSchema = new Schema({
   postID:          String,
   title:           String
});
mongoose.model('post', postSchema, 'posts');
postSchema.index({title: 'text'});

为什么这不起作用:

apiRouter.get('/api/searchPosts', function(req, res, next){
    postModel.find(
        { $text : { $search : req.query.text } }
     )
    .exec(function(err, posts) {
        if(posts){
            console.log('The query param is: ' + req.query.text);
            console.log('The posts results is: ' + JSON.stringify(posts));
            res.json({
                posts       :   posts
            });
        } else {
            res.send('Post does not exist');
        }
    });
});

我得到的结果是:

查询参数是:Shayan

帖子结果为:[]

帖子表的标题字段有" Shayan"在结果中,为什么这不起作用?

任何输入都会有所帮助。一如既往地谢谢

砂眼

1 个答案:

答案 0 :(得分:0)

知道了。问题是我需要在shell中运行以下内容:

db.posts.createIndex({"title":"text"})

现在完美无缺