$ set value в двойном вложенном массиве mongodb - PullRequest
0 голосов
/ 24 июня 2019

Объем проблемы

Я создаю систему отслеживания заданий и хочу $set статус определенного пользователя, задав для параметров запроса userId и jobId

Задача

Когда я запускаю запрос, он возвращает ноль и не находит конкретного пользователя. Я не уверен, как я должен структурировать свой параметр запроса, большое спасибо заранее =]

Код

     IndustryPartner.findOneAndUpdate(
          {
            _id: req.user.corporation,
            "bulletin.jobs.jobList._id": req.body.jobId,
            "bulletin.jobs.jobList.applicationList.user": req.body.userId
          },
          {
            $set: {
              "bulletin.jobs.jobList.$.applicationList.status": "Accepted"
            }
          },
          { new: true }
        )

Схема

        {bulletin: {
            jobs: {
              numOfJobs: { type: Number, default: 0 },
              jobList: [
                {
                  applicationList: [
                    {
                      user: { type: Schema.Types.ObjectId, ref: "User" },
                      firstName: { type: String, required: true },
                      lastName: { type: String, required: true },
                      avatar: { type: String, required: true },
                      status: {
                        type: String,
                        enum: ["Accepted", "In Review", "Declined"],
                        default: "In Review"
                      }
    ...

Данные испытаний

 "bulletin" : {
        "jobs" : {
            "jobList" : [ 
                {
                    "_id" : ObjectId("5d103be063b3014b08b0599d"),
                    "applicationList" : [ 
                        {
                            "status" : "In Review",
                            "_id" : ObjectId("5d1046cf802a2a59b8013511"),
                            "user" : ObjectId("5c9bf6eb1da18b038ca660b8"),
                            "firstName" : "Luke",
                            "lastName" : "Skywalker",
                            "dateCreated" : ISODate("2019-06-24T03:43:11.455Z")
                        }
                    ],
                    "dateCreated" : ISODate("2019-06-24T02:56:32.252Z")
                }
            ]
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...