使用动态查询在节点中使用mongoose更新多个记录

时间:2016-04-19 06:45:42

标签: node.js mongodb mongoose

我已经通过以下答案: - update multiple records using mongoosejs in node

Update multiple docs with different values

但在我的情况下,我的查询是动态的,意味着我需要动态查询 基于obj, 我也不确定forEach是否是一个混乱的解决方案 有没有更好的选择,因为每次都需要花费太多时间。

     req.body.forEach(function (obj) {
    myModel.find(
        {
            country: obj.country,
            product: obj.product,
            month: parseInt(obj.month),

        }
    ).update({
            $set: {
                value: parseInt(obj.value),
                'lastmodified': Date.now()
            }
        },
        { upsert: true},
        function (err) {
            //callback();
            if (err) {
                return res.status(500).send(err);
            }
            return res.status(200);
        }
    );

1 个答案:

答案 0 :(得分:0)

不知道这是否有用但看起来您不确定解析req.body以查找文档。这只是伪代码。也许它会给你一个想法。

app.put("/post", function(req, res){
    myModel.find({
        country : req.body.country,
        product : req.body.product,
        month : parseInt(req.body.month)
    })
    myModel.save(function(err, results){
        if(err) console.log(err);
        console.log(results)
        res.send(results)
    })
})