首页 > 编程笔记 > MongoDB 阅读:9

MongoDB更新操作符大全(附带实例)

根据操作对象划分,更新操作符分为字段更新操作符、数组更新操作符、数组更新修饰符、位更新操作符和隔离更新操作符。

MongoDB字段更新操作符

常用的字段更新操作符如下表所示:

表:字段更新操作符
名称 描述
$inc 增加字段值
$mul 将字段值乘以给定值
$rename 重命名字段
$setOnInsert 如果更新时,文档记录不存在,则使用该操作符设置字段的值。对已存在文档的更新操作无影响
$set 设置字段的值
$unset 从文档中删除指定的字段
$min 更新字段值大于给定值的字段
$max 更新字段值小于给定值的字段
$currentDate 设置字段值为当前时间,格式为 Date 或 Timestamp

下面的代码示例通过使用 $rename 运算符将 title 字段重命名为 newtitle 字段:
db.books.updateMany(
    { $rename: { "title": "newtitle" } }
)

MongoDB数组更新操作符

常用的数组更新操作符如下表所示:

名称 描述
$ 充当占位符以更新与查询条件匹配的第一个元素
$addToSet 向集合中添加不存在的元素
$pop 删除数组的第一个或最后一个元素
$pullAll 从数组中删除所有匹配的元素
$pull 删除匹配指定查询语句的所有数组元素
$push 向数组中增加一个元素

下面的代码示例通过使用 $addToSet 运算符为 results 字段添加新数据项:
db.scores.updateOne(
    { id: 1 },
    { $addToSet: { results: "100" } }
)

MongoDB数组更新修饰符

常用的数组更新修饰符如下表所示:

表:数组更新修饰符
名称 描述
$each 修饰 $push 和 $addToSet 操作符,为数组更新追加多个项
$slice 修饰 $push 操作符,限制更新的数组 size
$sort 修饰 $push 操作符,对数组中存储的元素重新排序
$position 修饰 $push 操作符,在数组指定的位置增加元素

下面的代码示例通过使用 $sort 运算符为 results 字段重新进行排序:
db.scores.updateOne(
    { id: 1 },
    {
        $push: {
            results: {
                $sort: 1
            }
        }
    }
)

MongoDB位更新操作符

常用的位更新操作符如下表所示:

名称 描述
$bit 对整数值执行逐位“与”“或”和“异或”更新

MongoDB隔离更新操作符

常用的隔离更新操作符如下表所示:

名称 描述
$isolated 修改写入操作的行为以增加操作的隔离度

相关文章