MongoDB предоставляет набор операторов обновления, которые позволяют вносить точные изменения в документы без их полной замены.
Эти операторы изменяют значения отдельных полей:
$set — присваивает новое значение указанному полю$unset — удаляет поле из документа полностью$rename — переименовывает существующее поле$inc — увеличивает числовое поле на заданное значение$mul — умножает числовое поле на заданный коэффициент$min / $max — обновляет поле только если новое значение меньше / больше текущегоПример с использованием $set и $inc:
db.users.updateOne(
{ _id: 1 },
{ $set: { status: "active" }, $inc: { loginCount: 1 } }
)
Эти операторы отвечают за изменение полей-массивов:
$push — добавляет значение в конец массива$pull — удаляет из массива все элементы, соответствующие условию$addToSet — добавляет значение в массив только если его там ещё нет, гарантируя уникальность$min / $max удобны для условных обновлений — например, для отслеживания минимальных оценок или последних временных меток$addToSet предпочтительнее $push, когда нужно исключить дубликатыОператоры $min и $max обновляют поле безусловно, всегда заменяя текущее значение на новое предоставленное значение.
Новый — ещё не проверен сообществом
Вы