我有一个下面的模式。我正在尝试填充竞争者数组中每个对象的“玩家”属性。
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);
});
};
但是它不起作用,相反,我得到的是一个竞争模型,其中包含空缺的竞争对手[]。如何实现填充竞争者数组中对象的玩家属性?