MongoDB $ addtoSet和$在相同的操作中设置

在我的Meteor / javascript应用程序中,我试图通过$addToSet更新一个特定的MongoDB文档,然后在同一个文档的不同部分$set 。 这两部分之间没有重叠,所以从我在网上阅读的内容应该是安全的。 但我似乎无法得到正确的语法。 如何在一个javascript命令中执行这两个操作? 下面的代码作为两个单独的命令,我认为如果它们可以组合成只有一个写入Mongo,速度会更快。

 Collection.update( {_id: documentId}, {$addToSet: {data: {$each: newData} } } ); Collection.update( {_id: documentId}, {$set: {lastTxn: lastTxn, updatedAt: new Date()} } ); 

只要他们不在同一条路上(这是你不能做的一件事),那就完全没问题。 $set$addToSet操作只是“更新文档”的顶级“键”:

  Collection.update( { "_id": documentId }, { "$addToSet": { "data": { "$each": newData } }, "$set": { "lastTxn": lastTxn, "updatedAt": new Date() } } );