2016-11-25 61 views
0

第一個模式:貓鼬,我如何加入使用填充的集合?

const ProviderSchema = new mongoose.Schema({ 
    provName : { type: String, index: true } 
}); 
module.exports = mongoose.model('provider', ProviderSchema); 

第二個架構:

const WebProviderSchema = new mongoose.Schema({ 
    userId  : { type: Schema.Types.ObjectId, ref: 'users'}, 
    providerId : { type: Schema.Types.ObjectId, ref: 'providers'} 
}); 
module.exports = mongoose.model('webProvider', WebProviderSchema); 

如何加入這兩種模式?

到目前爲止,如果我這樣做時,我只能從第二模式獲取數據:

webProvider 
      .find({userId : '23423df234434bc956'}) 
      .populate("providers") 
      .exec(function (error, listData) { 
        console.log(listData); 
}); 

回答

0

要填充你應該使用局部場providerId。應該是.populate("providerId")而不是.populate("providers")

webProvider.find({userId : '23423df234434bc956'}) 
      .populate("providerId") 
      .exec(function (error, listData) { 
       console.log(listData); 
      }); 

爲了填充多個領域可以用這樣的:

.populate("providerId userId") 

.populate("providerId") 
.populate("userId") 
+0

@JuanGonzales你能夠接受你喜歡它給你任何答案。但是我的回答是在別人回答之前發佈的。然而它確定:)。 –