javascript - 使用 Javascript 对象更新文档中的所有字段
问题描述
我想更新 MongoDB 文档中的所有字段,并且我有一个包含所有这些字段的 Javascript 对象。我可以轻松地输入要更新的每个字段,但这似乎需要大量的手动工作并且不可重复使用。我想做类似下面的事情,但这会创建一个对象,其中包含名为 newData 的文档中的所有新字段数据。
我已经在变量上尝试了 JSON.stringify,但格式不适合更新。
var newData = {
_id:ObjectId("53245234..."),
id: 88888,
firstData: "someData",
secondData: 787855,
thirdData: [ 45,17,12,234]
};
var collection = db.get('CollectionToUpdate');
//strip out dB id so as not to overwrite it, possibly not needed
if ("_id" in newData) {
delete newData["_id"];
}
//find the correct document based on program generated id and update
collection.update({id: newData.id}, {
newData
})
解决方案
如果您相信 newData 不会有任何您不想要的密钥(例如更新运算符),这应该可以工作:
var collection = db.get('CollectionToUpdate');
collection.update({id: newData.id}, newData)
请注意,这将替换文档。我认为这就是“更新所有字段”的意思。update
不替换“_id”。
推荐阅读
- python - 没有默认构造函数的对象成员的 Swig setter
- java - 回溯递归问题以解决平衡括号
- iframe - 如何使用 Cypress 处理正确 iframe 的加载?
- scala - -Xlint:unsound-match 标志在 Scala 中有什么作用?
- scala - 理解 Scala 对抽象类型和类的使用
- html - 如何仅使用 CSS 为可变数量的列创建选项卡式导航
- django - Wagtail - 如何在管理表单中预先填充字段?
- vue.js - 如何动态呈现不同数据表的列表
- python-3.x - 在 Python 3 中安装 SOAPpy
- python - Python re.findall 发现奇怪的错误模式