使用mongoose更新内部架构

时间:2014-12-24 19:10:00

标签: node.js mongodb mongoose mean-stack

我在更新其他架构中包含的架构中的成员时遇到问题。

var User = new mongoose.Schema({
first_name               : { type: String, required: true , lowercase: true},
last_name                : { type: String, required: true , lowercase: true},
log                      : { type: [Log], default:  [Log] },
});


var Log = new mongoose.Schema({
left_groups                     : [{ type: mongoose.Schema.Types.ObjectId, ref: 'Group' }],
});

我正在尝试更新left_groups成员(来自用户),这是对组架构的引用,我不能这样做。

在对网络进行研究之后,我想出的最好的是:

User.update({_id: "549a972f243a461c093f8ebb"}, {log:{$push:{left_groups: gr}}}, function ()     {
        console.log("updated")
    });

这似乎对我不起作用。

// gr [0]表示组。

1 个答案:

答案 0 :(得分:0)

我成功地弄清楚了......

我不确定这是一个合适的解决方案:

Group.findOne({_id: "549b18c73117388028c3990f"}, function (err, gr) {
    User.findOne({_id: '549b18c73117388028c39904'}, function(err, user){
        user.log[0].left_groups.push(gr);
        user.save();         
    });
})