我正在使用mongodb和节点JS的关键字实现搜索,但我发现Mongo中有运算符$ all,它选择字段包含数组并包含所有元素的文档。
这是我的节点JS
的源代码exports.find = function(req, res) {
var b=req.params.search;
var query = {};
var cadsrch = b.split(' ');
var l = cadsrch.length;
var i = 0;
for (i = 0; i < l; i++) {
if(cadsrch[i]!=''){
query[i]=new RegExp('^'+cadsrch[i], 'i');
}
}
db.collection('publicacion', function(err, collection) {
collection.find({tags: {'$all':query}},{title:true,content:true}).limit(5).toArray(function(err, items) {
res.jsonp(items);
});
});
};
上述来源不起作用,但此查询适用于Mongo-&gt;
db.publication.find({tags:{$all:['chevrolet','car']}})
奇怪的是'$ in'而不是'$ all'的作品,但使用'$ all'来实现精确搜索会很有用
答案 0 :(得分:1)
您已将查询定义为对象{}
。但是,您在mongo shell中使用的示例具有数组[]
。
我知道它们“有点”同样的东西,但它们可能值得制作相同的类型。