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证明正是我所需要的。