Задать вопрос
@Horus123

Как заменить элемент массива в mongoDB?

Есть mongodb коллекция
5f4f747779ce6594351876.png

Как заменить tablesState на обновленный? Сейчас у меня создается ещё один объект в массиве, а старый не удаляется.
const { email, tablesState } = req.body
            Users.update({ email }, { $set: tablesState }
                , function (err, WriteResult) {
                    if (err) return handleError(err);
                    res.status(201).json(WriteResult)
                }
            )
  • Вопрос задан
  • 463 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
так элемент массива заменить, или целый массив tablesState?

User.updateOne(
    // нужен айдишник для элемента, чтобы его выбрать из базы
  { email: email, 'tablesState._id': table_id },   
    // тогда можно будет так
  { $set: { 'tablesState.$' : tablesStateElement } }  
)
Ответ написан
@Che603000
c 2011 javascript
const { email, tablesState } = req.body
            Users.findOne({ email })
               .then(doc=>{
                    doc.tableState = tableState;
                    return doc.save();
                })
                .then(doc=>res.json(doc))
                .catch(err=>handlerError(err);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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