【问题标题】: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() 它。

【问题讨论】:

    标签: node.js mongodb express mongoose mongoose-populate


    【解决方案1】:

    试试这个:

    const user = await User.findById(req.params.userId).populate('groups.groupMembers');
    

    【讨论】:

    • 我试过了,还是一样的结果(空 groupMembers 数组)。
    • 你应该仔细检查 groups.groupMembers 中是否真的有项目,因为只有当它没有项目时它才会是空数组。
    • 是的,我在 groups.groupMembers 中有项目,我可以在我的 mongo 数据库中看到这些项目,它是 ObjectId 的数组。
    猜你喜欢
    • 2019-12-27
    • 2015-11-24
    • 1970-01-01
    • 2015-02-09
    • 2021-11-07
    • 2014-07-28
    • 2018-06-23
    • 2019-01-16
    相关资源
    最近更新 更多