如何填充其他集合中使用的子文档ID的数据

时间:2016-02-29 08:14:29

标签: node.js mongodb mongoose

我正在使用以下收藏:

    var collection1 = mongoose.Schema({
        name: { type: String},
        subdoc1: [subdoc1],
        subdoc2: [subdoc2]
    };
    module.exports = mongoose.model('collection1', collection1);

    var subdoc1 = mongoose.Schema({
        name: { type: String},
        address : { type: String}
    };
    module.exports = mongoose.model('subdoc1', subdoc1);

    var subdoc2 = mongoose.Schema({
        name: { type: String},
        address : { type: String}
    };
    module.exports = mongoose.model('subdoc2', subdoc2);

    var collcetion2 = mongoose.Schema({
        name: { type: String},
        subdoc1_id: {
            type: Schema.ObjectId,
            ref: 'subdoc1'
       },
        subdoc2_id: {
            type: Schema.ObjectId,
            ref: 'subdoc2'
       },
    };
    module.exports = mongoose.model('collcetion2', collcetion2);

这里我使用的是一个包含子文档(subdoc1和subdoc2)的集合1,我正在使用另一个名为collcetion2的集合。

现在我想将subdoc1和subdoc2的数据提取到collcetion2中。 我怎么能这样做?

目前我正在使用以下代码,但这不起作用:

Collection2.find({})
    .select('name subdoc1_id subdoc2_id')
    .populate('subdoc1_id', 'name address')
    .populate('subdoc2_id', 'name address')
    .exec(function(err, result) {

    console.log(result);
});       

但它没有为subdoc1和subdoc2提供数据(名称和地址)。

0 个答案:

没有答案