Mongodb $并且无法正常工作

时间:2015-02-24 05:36:46

标签: node.js mongodb express

我尝试使用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”]}})时,它可以工作。否则它不起作用(它返回所有数据)。

2 个答案:

答案 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}); 
    }
});

默认情况下是和运算符