在猫鼬中填充嵌套模型
Posted
技术标签:
【中文标题】在猫鼬中填充嵌套模型【英文标题】:Populate nested model in mongoose 【发布时间】:2021-12-25 15:23:16 【问题描述】:我得到了这个猫鼬模式
const UserSchema = new Schema(
email:
type: String,
required: true,
unique: true,
,
groups: [
groupName:
type: String,
required: true,
,
groupMembers: [ type: Schema.Types.ObjectId, ref: "GroupMember" ],
,
],
);
我正在尝试填充 groupMembers
const user = await User.findById(req.params.userId).populate(
path: "groups",
populate:
path: "groupMembers",
,
);
当我记录“用户”时,groupMembers
数组没有填充,它是空的(即使我里面有对象)。
编辑:找到解决方案 - 问题是当我添加新的 GroupMember
时,我没有 .save()
它。
【问题讨论】:
【参考方案1】:试试这个:
const user = await User.findById(req.params.userId).populate('groups.groupMembers');
【讨论】:
我试过了,还是一样的结果(空 groupMembers 数组)。 你应该仔细检查groups.groupMembers
中是否真的有项目,因为只有当它没有项目时它才会是空数组。
是的,我在 groups.groupMembers
中有项目,我可以在我的 mongo 数据库中看到这些项目,它是 ObjectId
的数组。以上是关于在猫鼬中填充嵌套模型的主要内容,如果未能解决你的问题,请参考以下文章