【问题标题】:mongoose find and save not updating the document猫鼬查找并保存不更新文档
【发布时间】:2017-10-05 05:19:47
【问题描述】:

我正在使用猫鼬来查找和修改并保存回集合。 这是我尝试过的:

if(req.body.writer){
     MyModel.find({writer: req.body.oldname},function (err, data) {
                for(var i = 0; i < data.length; i++){
                    data[i].writer= req.body.newName;
                    data[i].save()                    
                }
            });
}

为什么不更新文档? 问题出在哪里? 谢谢

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    尝试更新方法:

    if(req.body.writer && req.body.newName){
         MyModel.update(
            //search documents with old writer
            { writer : req.body.oldname},
            // set writer as newName
            { $set : { writer : req.body.newName} },
            {"multi": true},
            //check for error
            function (err) {
                if(err){
                    res.status(500).send(err);
                }
                else{
                    res.status(200).send('updated successfully..');
                }
            }
        );
    }
    

    【讨论】:

    • 这只是更新第一次出现。如何更新所有匹配的文档?
    • 您需要传递 {"multi": true} 作为第三个参数。我已经更新了答案,请检查。
    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 2016-05-24
    • 2017-12-05
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多