mongodb - 删除数组元素问题
问题描述
我正在尝试删除具有特定 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 将匹配某个参数的所有元素数组
有人可以看看我的代码吗?
解决方案
推荐阅读
- r - 金县地图未正确显示边界
- .net-core-3.0 - 如何在 EF Core 3.0 中使用带有 SqlParameters 的存储过程
- javascript - 无法使用 nightwatch js 验证模式内的详细信息
- d - 为什么 DMD 无法编译以下 D 代码片段?
- c# - ActionLink 控制器被调用两次
- html - 如何使用 HTML 和 CSS 或 JavaScript 修复视差页脚
- flutter - ProxyProvider 注入 Flutter 返回 null
- ios - Xcode 11 更新后看不到应用程序图标的 iMessages 扩展包
- python-3.x - 安装和导入 python 包时遇到问题
- blazor - 用于服务器端 Blazor 的 WYSIWYG HTML 编辑器