【发布时间】:2013-01-03 11:23:54
【问题描述】:
我正在使用 node.js mongodb 本机驱动程序。
假设我有一个名为 tasks 的 mongodb 集合,每个任务看起来像
{date:'29th jan', desc:'xxx', status:'incomplete'}
从用户输入我得到一个 JSON 对象“newData”的形式
{desc:'yyy',status:'complete'}
我用这个 newData 更新我的 mongodb 行的方式类似于
db.tasks.update({_id:newData.id},{$set:{desc:newData.desc,status:newData.status}})
这里只有两个字段,所以在 newData 中的每一对上使用 $set 是可以的,但我的问题是我可以更新行,而不必在 newData 中的每一对上写 $set,只提到一次 newData。 (显然我会保持 newData 中的键对与 mongodb 行中的键相同)
【问题讨论】:
-
只有通过改变你的文档结构来接受你的 newData 对象。您可以将 newData 属性值复制到本地,但对于您的示例来说,这似乎不值得。您可以在 JavaScript 中使用 ([with]developer.mozilla.org/en-US/docs/JavaScript/Reference/…) 语句,但它不会更快,并且在 JS 严格模式下不推荐或支持。
标签: node.js mongodb node-mongodb-native