猫鼬填充文档 [英] Mongoose populate documents

查看:58
本文介绍了猫鼬填充文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用猫鼬得到了3个数据库模型,如下所示:

I got 3 database models in mongoose that looks like this:

//profile.js
var ProfileSchema   = new Schema({
    username:    { type: String, required: true },                   
    password:    { type: String, required: true },                   
    matches:    [{ type: Schema.Types.ObjectId, ref: 'Match' }]
});

//match.js
var MatchSchema   = new Schema({ 
    scores:     [{ type: Schema.Types.ObjectId, ref: 'Score',  required: true }],
});

//score.js
var ScoreSchema   = new Schema({
    score:       {type: Number, required: true},
    achivement: [{type: String, required: true}],
});

然后我尝试用填充个人资料

And I try to populate a profile with

Profile.findOne({ _id: mongoose.Types.ObjectId(profile_id) })
            .populate('matches')
            .populate('matches.scores')
            .exec(function(err, profile) {
                if (err) {...}
                if (profile) {
                   console.log(profile);
                }
            });

比赛被填充,但我没有得到比赛中的比分.猫鼬不支持此功能吗,或者我做错了什么?填充给我这个:

The matches get populated but I dont get the scores in matches to populate. Is this not supported in mongoose or do I do something wrong? Populate gives me this:

{
    user_token: "539b07397c045fc00efc8b84"
    username: "username002"
    sex: 0
    country: "SE"
    friends: []
    -matches: [
        -{
            __v: 1
            _id: "539eddf9eac17bb8185b950c"
            -scores: [
                "539ee1c876f274701e17c068"
                "539ee1c876f274701e17c069"
                "539ee1c876f274701e17c06a"
            ]
        }
    ]
}

但是我想在match数组中填充score数组.我可以这样做吗?

But I want to populate the score array in the match array. Can I do this?

推荐答案

Profile.findOne({ _id: mongoose.Types.ObjectId(profile_id) })
        .populate('matches.scores')
        .exec(function(err, profile) {
            if (err) {...}
            if (profile) {
               console.log(profile);
            }
        });

这篇关于猫鼬填充文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆