| 语法 | { $match: { <查询条件> } } |
|---|---|
| 索引 | 首阶段与 find 同等利用索引 |
| 位置建议 | 放在管道开头 |
示例
示例
db.orders.aggregate([
{ $match: { ts: { $gte: ISODate("2026-10-01T00:00:00Z") }, status: "paid" } }
])$match 不能使用 $where 与部分查询操作符,语法边界与 find 略有差异。
$match 用与 find 相同的过滤语法在管道内筛文档;作为首阶段时能直接利用索引,是聚合性能的主要抓手。
| 语法 | { $match: { <查询条件> } } |
|---|---|
| 索引 | 首阶段与 find 同等利用索引 |
| 位置建议 | 放在管道开头 |
db.orders.aggregate([
{ $match: { ts: { $gte: ISODate("2026-10-01T00:00:00Z") }, status: "paid" } }
])