squadbrodyaga
@squadbrodyaga
帆は風を変えた

[Mongoose] Как изменить отдельное поле?

Здравствуйте.
Как изменить данные пользователя? Например в базе данных есть такая комната:
_id: *ид комнаты*
creator:
    _id: *ид создателя*
    login: "Вася"
    select: 
player2:
    _id: *ид второго игрока*
    login: "Петя"
    select:

И в поле select у player2 мне нужно занести новые данные, я сначала пробовал так:
await Room.findByIdAndUpdate(*название комнаты*, {
  player2: {
     select: "пишу сюда новые данные"
  }
}

Но потом в базе данных у player2 всё удаляется, кроме поля select, выглядит вот так:
_id: *ид комнаты*
creator:
    _id: *ид создателя*
    login: "Вася"
    select: 
player2:
    select: "тут появляются данные, но как видите другие поля удалились"

Потом я загуглил, там было что-то про $set, и я написал так:
await Room.findByIdAndUpdate(*название комнаты*, {
  $set: {
    player2: {
       select: "пишу сюда новые данные"
    }
  }
}

Но ничего не изменилось. Что я делаю не так?
  • Вопрос задан
  • 665 просмотров
Решения вопроса 1
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Попробуй
Room.update({_id: room._id, "subDocs._id": user._id}, {$set: { <your_data> });

Документация

PS
Решение изложено в комментах
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы