如何填充数组内的对象和猫鼬中的另一个数组中的所有用户字段

Posted

技术标签:

【中文标题】如何填充数组内的对象和猫鼬中的另一个数组中的所有用户字段【英文标题】:How to populate all the user fields which is inside an object inside of an array and another array in mongoose 【发布时间】:2022-01-22 03:29:42 【问题描述】:

这是我的课程架构

const CourseSchema = new Schema(
  
    courseName: 
      type: String,
      required: true,
      lowercase: true,
    ,
    comments: [
      [
        
          user: 
            type: Schema.Types.ObjectId,
            ref: "Users",
            required: true,
          ,
          comment: 
            type: String,
            required: true,
          ,
          createdAt: 
            type: Date,
            required: true,
          ,
        ,
      ],
    ],
  ,
  
    timestamps: true,
  
);
const Course = mongoose.model("Course", CourseSchema);

我想填充用户字段。我尝试了许多堆栈溢出解决方案,但没有一个适合我。

我像这样填充了模型,但是这样做只会填充每个模型的第一个索引。 课程 = 等待 Course.findOne().populate( 路径:“cmets.0.0.user”, );

【问题讨论】:

【参考方案1】:

您可以更深入地填充另一个级别,这是您需要做的:

 db.Course.findOne().populate("path":"comments",populate:[
    path:"user",
     model:"Users"
    ])

嵌套填充数据的另一种方式:

db.Course.findOne().populate("comments.user")

【讨论】:

以上是关于如何填充数组内的对象和猫鼬中的另一个数组中的所有用户字段的主要内容,如果未能解决你的问题,请参考以下文章

在猫鼬中查找 ID 数组

如何修复节点 js 和猫鼬中的缓冲超时错误

如何通过一次调用将一组对象推送到猫鼬中的数组中?

如何通过一次调用将一组对象推送到猫鼬中的数组中?

从猫鼬中的数组对象中选择特定项目

如何使用外键数组在没有 _id 的猫鼬中填充?