MongoDB 查询操作符
1. 查询操作符简介
在 MongoDB 中,查询操作符用于增强 find() 等方法的筛选能力。通过使用这些操作符,你可以执行比简单等值匹配更复杂的搜索,例如范围查询、逻辑组合或模式匹配。
2. 比较操作符 (Comparison Operators)
比较操作符允许你将文档中的字段值与指定值进行对比。
| 操作符 | 描述 |
|---|---|
| $eq | 匹配等于指定值的各个值。 |
| $ne | 匹配所有不等于指定值的各个值。 |
| $gt | 匹配大于指定值的各个值。 |
| $gte | 匹配大于或等于指定值的各个值。 |
| $lt | 匹配小于指定值的各个值。 |
| $lte | 匹配小于或等于指定值的各个值。 |
| $in | 匹配数组中指定的任何值。 |
| $nin | 不匹配数组中指定的任何值。 |
3. 逻辑操作符 (Logical Operators)
逻辑操作符用于连接多个查询条件,从而缩小或扩大搜索范围。
| 操作符 | 描述 |
|---|---|
| $and | 用逻辑“与”连接查询子句,返回符合所有条件的文档。 |
| $or | 用逻辑“或”连接查询子句,返回符合任一条件的文档。 |
| $not | 反转查询表达式的效果,返回不符合条件的文档。 |
| $nor | 用逻辑“非或”连接查询子句,返回不符合所有条件的文档。 |
4. 元素操作符 (Element Operators)
元素操作符用于根据字段的存在性或数据类型来筛选文档。
| 操作符 | 描述 |
|---|---|
| $exists | 匹配具有指定字段的文档。 |
| $type | 如果字段属于指定的 BSON 类型,则选择该文档。 |
5. 评估操作符 (Evaluation Operators)
评估操作符允许你对文档的整体结构或特定字段执行更高级的评估。
| 操作符 | 描述 |
|---|---|
| $regex | 选择值与指定的正则表达式匹配的文档。 |
| $text | 执行文本搜索。 |
| $where | 匹配满足 JavaScript 表达式的文档。 |
6. 数组操作符 (Array Operators)
专门用于查询数组字段的操作符。
| 操作符 | 描述 |
|---|---|
| $all | 匹配包含查询中指定的所有元素的数组。 |
| $elemMatch | 如果数组字段中的元素符合所有指定的查询条件,则选择该文档。 |
| $size | 如果数组字段具有指定的大小,则选择该文档。 |