我似乎无法找到我的错误。
如果有人能指出我正确的方向,那就太棒了:
我的架构:
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"在结果中,为什么这不起作用?
任何输入都会有所帮助。一如既往地谢谢
砂眼
答案 0 :(得分:0)
知道了。问题是我需要在shell中运行以下内容:
db.posts.createIndex({"title":"text"})
现在完美无缺