如何同时更新集合字段和子文档?

时间:2013-12-24 23:49:32

标签: node.js mongodb

我尝试更新集合字段并将新数据添加到子文档(数组)。无论如何它可以在一个电话中完成吗?

我想更新文档:

{
last_modified:dateObj,
subDoc:[]
}

以下内容:

{
last_modified:new DateObj,
subDoc:[{newObj:newObj}]
}

1 个答案:

答案 0 :(得分:2)

假设您的架构如下:

var Data = new Schema({
  last_modified : Date,
  subDoc : [Schema.Types.Mixed]
});

然后你可以在一个方法调用中修改(我将使用Mongoose's concept of methods):

Data.methods.addDocument = function(newObj, cb){
    this.last_modified = Date.now();
    this.subDoc.push(newObj);
    this.save(cb);       
}

此操作将是原子操作,例如,last_modifiedsubDoc都将被修改,或者都不会修改。