mongodb使用json更新同一行的多个字段
我正在使用node.js mongodb本地驱动程序。
比方说,我有一个称为任务的mongodb集合,每个任务看起来像
{date:'29th jan', desc:'xxx', status:'incomplete'}
从用户input,我得到一个JSON对象的“newData”的forms
{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行一样)
因为字段名称匹配,你可以直接在你的$set
使用newData
,如下所示:
db.tasks.update({_id:newData.id}, {$set: newData})
但是,如果您未validationnewData
包含哪些字段,则可能会将不需要的数据添加到您的任务文档中。