我如何在对象上实现猫鼬的填充功能,该对象是数组中另一个对象的属性

时间:2019-04-02 21:52:14

标签: mongoose mongoose-populate

我有一个下面的模式。我正在尝试填充竞争者数组中每个对象的“玩家”属性。

    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);

    });

};

但是它不起作用,相反,我得到的是一个竞争模型,其中包含空缺的竞争对手[]。如何实现填充竞争者数组中对象的玩家属性?

0 个答案:

没有答案