首页 > 解决方案 > 删除数组元素问题

问题描述

我正在尝试删除具有特定 courseId 值的数组元素。

架构:

const studentSchema = new mongoose.Schema({
  courses: [
    {
      days: [
        {
          courseDate: {
            type: String,
          },
          attendance: {
            type: Boolean,
          },
          reason: {
            type: String,
          },
        },
      ],
      courseId: {
        type: String,
      }
    }
  ]
});

这是我的尝试:

  await Student.findOneAndUpdate(
    { _id: req.params.studentId },
    { $pull: { courses: { courseId: '6116bc0063d27b366536d8fd' } } },
    { new: true }
  );

改动前:

"_id" : ObjectId("61178d5e0127592b245a6060"),
  "courses" : [ 
        {
            "_id" : ObjectId("61178d9f0127592b245a6073"),
            "courseId" : "6116bc0063d27b366536d8fd",
            "days" : [ 
                {
                    "_id" : ObjectId("61178d9f0127592b245a6074"),
                    "courseDate" : "Fri Sep 03 2021 00:00:00 GMT+0300 (Israel Daylight Time)",
                    "attendance" : false,
                    "reason" : ""
                }, 
                {
                    "_id" : ObjectId("61178d9f0127592b245a6075"),
                    "courseDate" : "Fri Sep 10 2021 00:00:00 GMT+0300 (Israel Daylight Time)",
                    "attendance" : false,
                    "reason" : ""
                }, 
                {
                    "_id" : ObjectId("61178d9f0127592b245a6076"),
                    "courseDate" : "Fri Sep 17 2021 00:00:00 GMT+0300 (Israel Daylight Time)",
                    "attendance" : false,
                    "reason" : ""
                }, 
                {
                    "_id" : ObjectId("61178d9f0127592b245a6077"),
                    "courseDate" : "Fri Sep 24 2021 00:00:00 GMT+0300 (Israel Daylight Time)",
                    "attendance" : false,
                    "reason" : ""
                }
            ]
        }
    ],

预期结果:

"_id" : ObjectId("61178d5e0127592b245a6060"),
"courses" : []

出于某种奇怪的原因,我无法从课程数组中提取任何内容,但我可以推送对象。

我想删除他们 courseId 将匹配某个参数的所有元素数组

有人可以看看我的代码吗?

标签: mongodbmongoose

解决方案


推荐阅读