MongoDB предоставляет три основных метода для изменения документов: updateOne, updateMany и replaceOne. Каждый служит для конкретной цели в зависимости от области действия и типа требуемых изменений.
updateOne изменяет только первый документ, который соответствует критериям фильтра. Он использует операторы обновления вроде $set для изменения конкретных полей, оставляя остальную часть документа нетронутой.
db.users.updateOne({ name: "John" }, { $set: { age: 29 } })
updateMany применяет одно и то же обновление ко всем документам, соответствующим фильтру. Идеален для массового обновления полей по всей коллекции.
db.users.updateMany({ age: { $lt: 30 } }, { $set: { status: "young" } })
$set, как updateOnereplaceOne полностью перезаписывает найденный документ новым. В отличие от методов обновления, он не использует операторы — второй аргумент становится новым документом целиком.
db.users.replaceOne({ name: "John" }, { name: "John", age: 29, city: "NYC" })
_id| Метод | Область действия | Сохраняет поля |
|---|---|---|
updateOne | Один документ | ✅ Да |
updateMany | Несколько документов | ✅ Да |
replaceOne | Один документ | ❌ Нет |
Метод updateOne изменяет только первый документ, соответствующий критериям фильтра, и сохраняет все поля, которые не упомянуты явно в операции обновления.
Новый — ещё не проверен сообществом
Вы