使用mongoose更新多个记录?

时间:2017-03-04 17:02:10

标签: mongodb mongoose

我正在编写一个服务类(mongo_service.js),以便让我的CRUD操作与项目分开。

以下是更新多个项目的代码。

updateMultipleCollection(Model, searchObject, collectionNewToUpdate) {
    return new Promise(function (resolve, reject) {
        Model.update( searchObject, collectionNewToUpdate, {new:true, multi:true}, function (err, data) {
            if (err) {
                reject(err);
            }
            resolve (data);
            console.info("Multiple updates successful");
        });
    });
};

这很好但是承诺不会返回更新的对象,我想知道是否还有其他方法可以克服这个问题?

注意:在mongoose文档中,他们提到.update()不会返回更新的对象,而.findOneAndUpdate()会返回。

1 个答案:

答案 0 :(得分:0)

你可以做一个.find()并返回一个数组。

然后对数组执行forEach并在每个文档上执行.save。新文档应该在.save

的回调中