我正在使用以下收藏:
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提供数据(名称和地址)。