用猫鼬更新很多-更新对象的数组

时间:2019-08-08 09:43:22

标签: mongodb mongoose mongoose-schema

假设我具有以下数组:

[
    {_id: 1, status: "Active"},
    {_id: 2, status: "Delete"},
    {_id: 10, status: "Pause"},
    {_id: 20, status: "Active"}
]

我想使用 mongoose 通过一个mongoDB调用更新集合status中的字段users。 (仅更新_id = 1,2,10,20的文档)

我的架构如下所示:

var userScheme = new Schema({
    fname : String,
    lname : String,
    status : String,
    email : String
});
db.model('user', userScheme);

注意:我要使用updateMany而不是update

1 个答案:

答案 0 :(得分:1)

对于那些想要完整示例而不是重新回答其他问题的人,这是我的答案,该答案基于@Ashh的答案。

db.model("user").bulkWrite(
                usersArray.map((data) =>
                    ({
                        updateOne: {
                            filter: { _id: data._id },
                            update: { $set: {status: data.status} }
                        }
                    })
                )
            );