Не могу вставить / обновить данные в существующий объект Монго - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть пользовательский объект, который состоит из пары массивов внутри, который выглядит так:

{_id: "5b90a261ff3712000495ca29", 
  name: "Udit", 
  email: "guru.udit@bmail.com", 
  password: "sjsndj",
  education:[],
  professionalexp:[],
  projects:[],
  skills:[]
}

Я использую экспресс-API для передачи данных в массив обучения с некоторым объектом, ниже приведен код, который я пытаюсь обновить данные монго. Когда я пытаюсь нажать и обновить данные, я не вижу ответа. Как я должен идти и толкать массив или несколько массивов одновременно

app.put('/api/updatefield/',function (req, res){
      User.update({_id: req.body._id}, {
        $push :{
          "education.$.University": "something that is there"
        }
      },function (err, result) {
        if (err) {
          res.send(err)
        }
        if (result) {
          res.json(result)
        }
      })

})

также для справки: это данные, которые я отправляю через тело API, которые я получаю в req.body на остальном сервере

{"summary":"some summary","education":[{"name":"Institue","from":"19/07/2018","to":"30/07/2018"}],"professional":[{"name":"Company","from":"19/07/2018","to":"30/07/2018"}],"cardCount":1,"cardCount2":1}

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете сделать что-то вроде этого:

    User.update({_id: ObjectId("5b910b0acb5b7646e630cefe")}, {
    $push: {
        "education": {
            "summary": "some summary",
            "education": [{"name": "Institue", "from": "19/07/2018", "to": "30/07/2018"}],
            "professional": [{"name": "Company", "from": "19/07/2018", "to": "30/07/2018"}],
            "cardCount": 1, "cardCount2": 1
        }
    }
})

Для нескольких объектов:

User.update({_id: ObjectId("5b910b0acb5b7646e630cefe")}, {
    $push: {
        "education": {
            $each: [{
                "summary": "some summary",
                "education": [{"name": "Institue", "from": "19/07/2018", "to": "30/07/2018"}],
                "professional": [{"name": "Company", "from": "19/07/2018", "to": "30/07/2018"}],
                "cardCount": 1, "cardCount2": 1
            }, {"a": 2}]
        }

    }
})

Для вставки в более чем 1 объект:

User.update({_id: ObjectId("5b910b0acb5b7646e630cefe")}, {
        $push: {
            "education": {
                $each: [{
                    "summary": "some summary",
                    "education": [{"name": "Institue", "from": "19/07/2018", "to": "30/07/2018"}],
                    "professional": [{"name": "Company", "from": "19/07/2018", "to": "30/07/2018"}],
                    "cardCount": 1, "cardCount2": 1
                }, {"a": 2}]
            },
           "professionalexp" : {"a":2}
        }
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...