node.js - .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
解决方案
你走错路了。更新文档的最佳有效方法是使用该update
方法,如下所示:
var update = await model.update(...)
有多种选择:update()
,updateOne()
或updateMany()
...
如果您只想更新一个文档,findByIdAndUpdate()
如果您知道该文档_id
或updateOne()
.
要更新的查询可能类似于此示例。请注意,mongoose
如果{multi: true}
您使用updateMany()
.
Into JS 完全一样:
var update = await model.update({
"_id": {"$in": yourArrayID}
},
{
"$set": {"name": yourNewName}
});
推荐阅读
- google-apps-script - Google表格中的加权随机
- pandas - 从数据帧中提取索引并附加到另一个数据帧
- android - Kotlin - 添加更多变体 - soundPool
- c# - 如何为 SharePoint Online 设置 .NET 开发环境
- javascript - Javascript浏览器游戏库存系统,检查项目是否在字符JSON文件中
- html - 如何在悬停而不是单击时制作网站菜单下拉菜单
- java - 用于匹配 Dockerfile arg 值的 Java 正则表达式
- html - 如何删除 div 内容和边框之间不需要的空间?
- angular - Angular 10 无法绑定到“ngForOf”,因为它不是“li”的已知属性-----没有真正的错误
- r - 根据条件-R的ID将dataset2分配给数据集1