обновить информацию о пользователе в массиве - PullRequest
0 голосов
/ 30 мая 2020

У меня проблема, я хочу обновить хобби в виде массива (например, {"хобби": ["бег", "танцы"]})

Пользователь - это модель.

    router.patch('/userInfo', async (req, res) => {
    const updates = Object.keys(req.body);
    const allowedUpdates = ['userId', 'userImages','intrestedIn', 'hobbies']`

    const isValidOperation = updates.every((update) => {
      return allowedUpdates.includes(update)
    });

    if (!isValidOperation) {
      return res.send({
        error: "Validation fail"
      })
    }

    try {

      const user = await User.findOne({ _id: req.body.userId }, req.body)
      console.log(user)
      if (!user) {
        return res.send({
          error: 'Invalid user Id'
        })
      }
      updates.forEach((update) => {
        user[update] = req.body[update]
      })
      await user.save()

      return res.send({ user })
    } catch (e) {
      res.send(e)
    }
})

и вывод таков, но мне нужен массив (например, вывод intolatedIn)

{
    "user": {
        "intrestedIn": [
            "Female"
        ],
        "hobbies": [
            "{\"hobbies\":[\"dancing\",\"running\"]} "
        ],
        "_id": "5ec71c43026b2f1d640b657f"
       }
}
...