MongoDB 的 update用法
时间: 2023-12-05 16:03:44 浏览: 39
MongoDB的update用法如下:
1. 更新单个文档:
```
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
```
- `<query>`:查询条件
- `<update>`:更新的内容,可以是文档或操作符表达式
- `upsert`:可选参数,如果查询条件不存在是否插入新文档,默认为false
- `multi`:可选参数,是否更新多个文档,默认为false
- `writeConcern`:可选参数,写入的确认级别,默认为写入到大多数节点
2. 更新多个文档:
```
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string>
}
)
```
- `<filter>`:查询条件
- `<update>`:更新的内容,可以是文档或操作符表达式
- `upsert`:可选参数,如果查询条件不存在是否插入新文档,默认为false
- `writeConcern`:可选参数,写入的确认级别,默认为写入到大多数节点
- `collation`:可选参数,指定排序规则
- `arrayFilters`:可选参数,更新数组元素时指定过滤条件
- `hint`:可选参数,指定查询时使用的索引
3. 更新第一个文档:
```
db.collection.updateOne(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string>
}
)
```
- `<filter>`:查询条件
- `<update>`:更新的内容,可以是文档或操作符表达式
- `upsert`:可选参数,如果查询条件不存在是否插入新文档,默认为false
- `writeConcern`:可选参数,写入的确认级别,默认为写入到大多数节点
- `collation`:可选参数,指定排序规则
- `arrayFilters`:可选参数,更新数组元素时指定过滤条件
- `hint`:可选参数,指定查询时使用的索引
其中,`<update>`可以使用以下操作符表达式:
- `$set`:设置字段值
- `$unset`:删除字段
- `$inc`:对字段进行加减操作
- `$push`:向数组中添加元素
- `$addToSet`:向数组中添加唯一元素
- `$pop`:从数组中删除元素
- `$pull`:从数组中删除满足条件的元素
- `$rename`:重命名字段
- `$mul`:对字段进行乘法操作
- `$min`:如果指定字段的值小于给定值,则更新该字段
- `$max`:如果指定字段的值大于给定值,则更新该字段