无法迭代mongodb数组

vwoqyblh  于 2022-11-28  发布在  Go
关注(0)|答案(1)|浏览(124)

我们正在数据库中查找一个用户,其截止日期为'_id'

"_id": "6381e7c6bf8892cf05c7c798",
    "username": "Teacher",
    "email": "teacher@gmail.com",
    "role": "teacher",
    "avatar": "fixtures/teacher.jpg",
    "token": "KNuSF7sscU3EJsMetUFKi",
    "authentication": true,
    "myCourses"


需要使用'aggregate'从数组中获取合适的对象,我们通过'course'字段找到该对象并更改其中的'status'

"myCourses": [
        {
            "course": "6381e7c6bf8892cf05c7c7b3",
            "status": true,
            "_id": "6381e80f12d633b2e6c35fbd"
        },
        {
            "course": "6381edab4f212193837ab575",
            "status": true,
            "_id": "6381edc54f212193837ab57c"
        }
    ],

我试过以下方法
第一个
最后一种方法有效,但我认为它不正确

wz3gfoph

wz3gfoph1#

如果您要在myCourses中更新课程状态。请按_id筛选文档,并按courseId筛选您要更新的课程。使用指针运算符$设置指向的对象属性中的值。请在此处阅读文档

User.update({
  _id: userId,
  "myCourses.course": courseId
},
{
  $set: {
    "myCourses.$.status": newStatus
  }
})

Try sample
example

相关问题