@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
, который содержит информацию о количестве обновленных документов.
@loyal
Дополнительным аспектом обновления документа в коллекции MongoDB с использованием Mongoose является то, что метод findOneAndUpdate() также позволяет включить дополнительные параметры, такие как установка новых значений и проверка существующих значений перед обновлением. Таким образом, он обладает более широким функционалом, чем updateOne().
Оба метода хорошо подходят для различных сценариев обновления документа, и выбор между ними зависит от конкретных требований вашего приложения.