MongoDB更新操作符大全(附带实例)
根据操作对象划分,更新操作符分为字段更新操作符、数组更新操作符、数组更新修饰符、位更新操作符和隔离更新操作符。
下面的代码示例通过使用 $rename 运算符将 title 字段重命名为 newtitle 字段:
下面的代码示例通过使用 $addToSet 运算符为 results 字段添加新数据项:
下面的代码示例通过使用 $sort 运算符为 results 字段重新进行排序:
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 | 修改写入操作的行为以增加操作的隔离度 |