Если вы хотите обновить тот же документ, вам не нужно вызывать .findOne()
, а затем метод .updateOne()
.По умолчанию параметр upsert
имеет значение false в .upadateOne()
, поэтому он откажется вставить документ, если не найден, иначе он обновится.
document.collection('myCollection').updateOne({ _id: myId }, { $set: { name: 'John' } });
.updateOne
должно быть достаточно в вашем случае.
Также, если вы хотите добавить некоторые условия фильтра, .updateOne()
поддерживает это, как показано ниже:
db.collection.updateOne(
<filter>, // you can place filters here
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
Ссылка: https://docs.mongodb.com/manual/reference/method/db.collection.updateOne/