Как я могу получить функцию заполнения в мангусте на объекте, который является свойством другого объекта, который находится в массиве - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть схема ниже. Я пытаюсь заполнить свойство player для каждого объекта в массиве конкурентов.

    let competitionSchema = new Schema({

    dateCreated : { type: Date, default: Date.now },

    competitionName : String,

    game : { type: Schema.Types.ObjectId, ref: 'game'},

    competitors : [

          {
              player : {type: Schema.Types.ObjectId, ref: 'user'},

              isWinner : Boolean,

              isEliminated : Boolean,

              winAmount : Number,

              risk : Number,
          }

    ],


});

var CompetitionODM = mongoose.model('competition', competitionSchema);

Когда я получаю соревнование из базы данных, я хочу заполнить поле "игрок" каждого конкурента в массиве конкурентов. Я пытался получить его, используя:

    exports.findCompetitionByName = function (name, callback) {

    CompetitionODM.findOne({competitionName: name}).populate('competitors').exec(function(err, foundCompetitions)
    {
        console.log(foundCompetitions)

        callback(err,foundCompetitions);

    });

};

но это не работает, вместо этого я получаю модель конкуренции с пустым массивом конкурентов []. Как мне добиться заполнения свойства player объектов массива конкурентов?

...