摘要:本文主要学习了查询操作符和更新操作符。
环境
Windows 10 企业版 LTSC 21H2
MongoDB 6.0.21
1 查询操作符
1.1 比较查询
比较查询:
操作符 | 描述 | 示例 | ||
---|---|---|---|---|
$eq |
等于 |
查询age等于25的文档:
|
||
$ne |
不等于 |
查询age不等于25的文档:
|
||
$gt |
大于 |
查询age大于25的文档:
|
||
$lt |
小于 |
查询age小于25的文档:
|
||
$gte |
大于等于 |
查询age大于等于25的文档:
|
||
$lte |
小于等于 |
查询age小于等于25的文档:
|
||
$gte |
包含 |
查询age包含25和35的文档:
|
||
$lte |
不包含 |
查询age不包含25和35的文档:
|
1.2 逻辑查询
逻辑查询:
操作符 | 描述 | 示例 | ||||
---|---|---|---|---|---|---|
$and |
逻辑与 |
查询age等于25且sex为女的文档:
|
||||
$or |
逻辑或 |
查询age等于25或sex为女的文档:
|
||||
$nor |
逻辑非或 |
查询age不等于25且sex不为女的文档:
|
||||
$not |
逻辑非 |
查询age不等于25的文档:
|
1.3 元素查询
元素查询:
操作符 | 描述 | 示例 | ||
---|---|---|---|---|
$exists |
是否存在 |
查询包含age字段的文档:
|
||
$type |
数据类型 |
查询age字段类型为整数的文档:
|
1.4 评估查询
评估查询:
操作符 | 描述 | 示例 | ||
---|---|---|---|---|
$regex |
支持正则表达式 |
查询address以北京市开头的文档:
|
1.5 数组查询
数组查询:
操作符 | 描述 | 示例 | ||
---|---|---|---|---|
$all |
数组中所有元素都满足条件 |
查询tags数组中同时包含age和sex的文档:
|
||
$elemMatch |
匹配数组中的元素 |
查询scores数组中存在大于80的文档:
|
||
$size |
数组的大小 |
查询book数组大小为2的文档:
|
2 更新操作符
2.1 字段更新
字段更新:
操作符 | 描述 | 示例 | ||
---|---|---|---|---|
$rename |
更新字段名 |
将name为张三的location字段名设置为address:
|
||
$set |
更新字段值 |
将name为张三的age字段值设置为30:
|
||
$unset |
删除字段 |
将name为张三的age字段删除:
|
||
$inc |
将字段按指定值相加 |
将name为张三的age字段减1:
|
||
$mul |
将字段按指定值相乘 |
将name为张三的age字段乘2:
|
||
$min |
设置最大值,当指定值小于字段值,更新为指定值 |
将name为张三的age字段的最大值更新为16:
|
||
$max |
设置最小值,当指定值大于字段值,更新为指定值 |
将name为张三的age字段的最小值更新为18:
|
2.2 数组更新
数组更新:
操作符 | 描述 | 示例 | ||||
---|---|---|---|---|---|---|
$pop |
从数组的开头或结尾移除元素,末尾是1,开头是-1 |
将name为张三的scores数组移除末尾元素:
|
||||
$push |
将元素添加到数组的末尾 |
将name为张三的scores数组末尾添加100元素:
|
||||
$pull |
从数组中移除所有匹配的元素 |
将name为张三的scores数组移除90元素:
|
||||
$pullAll |
从数组中移除所有匹配的元素,支持多个 |
将name为张三的scores数组移除70元素和80元素:
|
条