我尝试使用mongodb $和我的nodejs应用程序查找数据,但它无法正常工作。
我的代码 -
var brand = req.param('Brand').split(',');
brand = '"' + brand.join('","') + '"';
if (query != '')
query += ','
query += '{"pro.brand": {$in:['+ brand +']}}'
itemdata.find({$and:[query]}, function(err, product) {
if (err) {
return res.send({info: "Opps sorry"});
}
else {
res.json({deals: product});
}
});
当我手动输入查询({“pro.brand”:{$ in:[“Micromax”]}})时,它可以工作。否则它不起作用(它返回所有数据)。
答案 0 :(得分:1)
此函数的查找或执行必须是对象。这里,
var brand = req.param('Brand').split(','); // Is Array
itemdata.find({
$and:[
"pro.band" : {
$in : brand // Go into the object
}
]
}, function(err, product) {
if (err) {
return res.send({info: "Opps sorry"});
}
else {
res.json({deals: product});
}
});
一切都必须是一个对象,javascript和JSON中的对象具有相同的脚本。无需将其转换为字符串。
答案 1 :(得分:0)
var brand = req.param('Brand').split(','); // Is Array
itemdata.find({
"pro.band" : {
$in : brand // Go into the object
}
}, function(err, product) {
if (err) {
return res.send({info: "Opps sorry"});
}
else {
res.json({deals: product});
}
});
默认情况下是和运算符