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 | 修改写入操作的行为以增加操作的隔离度 |
ICP备案:
公安联网备案: