2016-11-25 3 views
0

Первая схема:Mongoose, как мне присоединиться к коллекциям с использованием населенного пункта?

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 вы можете принять любой ответ, который вам нравится его до вас. но мой ответ был опубликован до того, как другие ответят. Я упомянул, потому что вы заметили, что другой ответ был первым. но его нормально :). –