如何使用MongooseJS保存父子文档

时间:2015-01-10 17:17:03

标签: mongodb mongoose nosql

我是MongoDB中的新手。 MongooseJS。实际上学习MEAN堆栈,我已经爱上了它。 我不确定是否完全理解noSQL原则,抱歉如果我复制。

我想加入2个文件,输入父亲和孩子,与1到N的关系。

这是两个解决方案:
•子文件:http://mongoosejs.com/docs/subdocs.html
•参考文献:http://mongoosejs.com/docs/populate.html

我选择了第一个,更简单,IHMO更接近我的问题。

以下是代码:

var personSchema = new Schema({
    name        : String
});

var groupSchema = new Schema({
    name        : String,
    persons     : [ personSchema ]
});


var Group = module.exports = mongoose.model('Group', groupSchema);
var Person = module.exports = mongoose.model('Person', personSchema);

Group.findById(groupId, function(err, group) { 
                        var person = new Person();
                        person.name = "john";
                        group.persons.push(person);

                        group.save();
});

当我检查所有组时,它完美地工作。这些团体被归还,人们得救了。

Group.find(function(err, group) { 
    // group is full of groups & people
}

但是当我检查人时,没有任何回报。

Person.find(function(err, person) { 
    // person is empty
}

似乎只填写了Group table 文档。解决方案是否意味着保存1 /人和2 /组,如果是,将Person保存在两个不同的位置(在组文档和个人文档中)?

Group.findById(groupId, function(err, group) { 
                        var person = new Person();
                        person.name = "john";
                        group.persons.push(person);

                        person.save(function(...) {
                                group.save();
                        });

});

由于

0 个答案:

没有答案