Как обновить документ в коллекции с помощью Mongoose?

Пользователь

от loyal , в категории: JavaScript , 9 месяцев назад

Как обновить документ в коллекции с помощью Mongoose?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от kyleigh_runte , 8 месяцев назад

@loyal 

Для обновления документа в коллекции MongoDB с помощью Mongoose можно использовать метод findOneAndUpdate() или updateOne().


Пример использования findOneAndUpdate():

1
2
3
4
5
6
7
8
9
const MyModel = require('./myModel');

MyModel.findOneAndUpdate({ _id: 'myDocId' }, { myField: 'myNewValue' }, { new: true })
  .then(updatedDoc => {
    console.log(updatedDoc);
  })
  .catch(err => {
    console.error(err);
  });


Здесь мы обновляем документ с _id равным 'myDocId' и устанавливаем значение поля myField равным 'myNewValue'. Третий аргумент { new: true } говорит Mongoose возвращать обновленный документ вместо исходного.


Пример использования updateOne():

1
2
3
4
5
6
7
8
9
const MyModel = require('./myModel');

MyModel.updateOne({ _id: 'myDocId' }, { myField: 'myNewValue' })
  .then(result => {
    console.log(result);
  })
  .catch(err => {
    console.error(err);
  });


Здесь мы обновляем первый документ, соответствующий критерию { _id: 'myDocId' }, устанавливая значение поля myField равным 'myNewValue'. Метод updateOne() возвращает объект result, который содержит информацию о количестве обновленных документов.