MongoDB 简明教程

MongoDB 更新操作符

1. 字段更新操作符 (Field Update Operators)

字段更新操作符允许你修改文档中的特定字段,而无需替换整个文档。

操作符描述
$currentDate将字段的值设置为当前日期,可以是日期(Date)或时间戳(Timestamp)。
$inc将字段的值增加指定的数量。
$min仅当指定值小于现有字段值时,才更新该字段。
$max仅当指定值大于现有字段值时,才更新该字段。
$mul将字段的值乘以指定的数量。
$rename修改现有字段的名称。
$set设置文档中某个字段的值。
$setOnInsert如果更新操作导致了文档的插入(upsert),则设置该字段的值。
$unset从文档中删除指定的字段。

2. 数组更新操作符 (Array Update Operators)

这些操作符专门用于处理文档内部的数组字段。

操作符描述
$用作占位符,以更新匹配查询条件的数组中的第一个元素。
$[]用作占位符,以更新匹配查询条件的数组中的所有元素。
$[<identifier>]用作占位符,为匹配 arrayFilters 条件的元素更新数组。
$addToSet仅当数组中不存在该元素时,才向数组添加元素。
$pop删除数组的第一项或最后一项。
$pull删除所有匹配指定查询条件的数组元素。
$push向数组中追加一个元素。
$pullAll从数组中删除所有指定的元素。

3. 更新修饰符 (Update Modifiers)

修饰符通常与特定的数组更新操作符(如 $push$addToSet)配合使用。

修饰符描述
$each修改 $push$addToSet 操作符,以便一次性追加多个元素。
$position修改 $push 操作符,以指定元素在数组中插入的位置。
$slice修改 $push 操作符,用于限制更新后数组的最大长度。
$sort修改 $push 操作符,对存储在数组中的元素进行重新排序。

4. 位运算更新操作符 (Bitwise Update Operator)

用于对整数字段执行底层的位运算。

操作符描述
$bit对字段值执行位运算(与 AND、或 OR、异或 XOR)。