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是可以的,但是我的问题是我可以更新行,而不必在ne​​wData的每一对上写$ set,只需提一次newData。 (显然,我会保持在newData中的对键与那些是mongodb行一样)

因为字段名称匹配,你可以直接在你的$set使用newData ,如下所示:

 db.tasks.update({_id:newData.id}, {$set: newData}) 

但是,如果您未validationnewData包含哪些字段,则可能会将不需要的数据添加到您的任务文档中。