Node.js 猫鼬:链接到引用子文档的种群
我必须在node.js express应用程序-用户和交付中创建架构Node.js 猫鼬:链接到引用子文档的种群,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我必须在node.js express应用程序-用户和交付中创建架构 var User = new Schema({ name: {type: String}, addresses: [ { city: {type: String}, address: {type: String}, } ], }); 我无法从交付架构的地址字段中引用用户的地址子文档,因此地址字段存储子文档的\u id va
var User = new Schema({
name: {type: String},
addresses: [
{
city: {type: String},
address: {type: String},
}
],
});
我无法从交付架构的地址
字段中引用用户的地址
子文档,因此地址
字段存储子文档的\u id
var Delivery = new Schema({
time: {type: String},
address: {type: String} // this field references to User schema's address subdocument
});
那么,如何填充交付
模式中的地址
字段呢
Delivery.findOne(/*here is condition*/).populate({path: 'address', model: 'User.addresses'});
试试这个:
var Address = new Schema({
city: {type: String},
address: {type: String}
});
var AddressModel = mongoose.model('AddressModel', Address);
var User = new Schema({
name: {type: String},
addresses: [Address],
});
var Delivery = new Schema({
time: {type: String},
address: {
type: Schema.ObjectId,
res: 'Address'
}
});
然后:
它不工作,简单地址变为空,没有任何错误。每个架构都存储在单独的文件中-
user.js
和delivery.js
@user3215609 MongoDB没有联接,因此您必须手动从另一个集合加载数据。或者将地址保存在专用的集合中以供参考。
Delivery.findOne(/*here is condition*/).populate('address')...