首页 > 解决方案 > .save() 多文档猫鼬

问题描述

我正在使用 mongodb,我想一次保存多个文档的更改。例如它的我的代码..

const userSchema = new Schema({
 name : String,
 age : Number,
 online : true
})

然后例如我想一次更改两个用户的名称..我使用这种方法来获取用户

const myUsers = Users.find({
    '_id': { $in: [
        mongoose.Types.ObjectId('4ed3ede8844f0f351100000c'),
        mongoose.Types.ObjectId('4ed3f117a844e0471100000d'), 
    ]}
}

没关系,我得到了我想要的,然后我更改了名称,但是在那之后,当我想保存更改时myUsers.save()出现错误,myUsers.save() is not a function

标签: node.jsmongodbmongoose

解决方案


你走错路了。更新文档的最佳有效方法是使用该update方法,如下所示:

var update = await model.update(...)

有多种选择:update(),updateOne()updateMany()...

如果您只想更新一个文档,findByIdAndUpdate()如果您知道该文档_idupdateOne().

要更新的查询可能类似于此示例。请注意,mongoose如果{multi: true}您使用updateMany().

Into JS 完全一样:

var update = await model.update({
  "_id": {"$in": yourArrayID}
},
{
  "$set": {"name": yourNewName}
});

推荐阅读