Javascript 如何在mongoose中的数组中填充?

Javascript 如何在mongoose中的数组中填充?,javascript,express,mongoose,Javascript,Express,Mongoose,我正在尝试显示好友组中的用户。我用的是猫鼬和快递。这是朋友组架构: var mongoose = require("mongoose"); var FriendGroupSchema = new mongoose.Schema({ name: String, public_or_private: { type: String, enum: ["public", "private",] }, friends: [

我正在尝试显示好友组中的用户。我用的是猫鼬和快递。这是朋友组架构:

    var mongoose = require("mongoose");

    var FriendGroupSchema = new mongoose.Schema({
        name: String,
        public_or_private: { type: String, enum: ["public", "private",] },
        friends: [
            {
                user: {
                    type: mongoose.Schema.Types.ObjectId,
                    ref: "friend"
                },
                admin: Boolean
            }
        ]
    });

    module.exports = mongoose.model("friend_group", FriendGroupSchema);
这是用户模式:

var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");

var UserSchema = new mongoose.Schema({
    username: String,
    password: String,
    profile_picture: String,
    about: String,
    friend_groups: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "friend_group"
        }
    ],
    friends: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "friend"
        }
    ],
});

UserSchema.plugin(passportLocalMongoose);

module.exports = mongoose.model("User", UserSchema);
我需要在用户的显示页面中显示好友组中的用户。我需要。填充到用户,然后填充到朋友组,然后填充到朋友数组,最后填充到用户,以及他/她是否是管理员(我需要同时显示两者)。
这就是我到目前为止所做的:

.populate({path:"friend_groups", populate: {path: 'friends', populate: {path: 'user', model: 'User'}}})

但这似乎不起作用。我做错了什么?

你确定你定义的ref是正确的吗
ref
应该是您所指型号的名称,在您的情况下,只有两种型号:
User
friend\u group
,但我没有看到
friend
型号。我认为
ref:'friend'
应该是
ref:'User'
。但即便如此,这一质疑也是错误的。您应该填充
好友。用户
而不是
好友
路径:“好友”
部分。@fxgx感谢您的评论。你对裁判的看法绝对正确,但我还有另一个模型叫“朋友”。否则,你的建议填充friends.user证明正是我所需要的。