$gte(大于等于)
最后更新:2026-10-09
$gte(大于等于)
$gte 选择字段值大于或等于指定值的文档。`{ age: { $gte: 21 } }` 匹配 21 岁及以上的用户。它是 $gt 的边界包含版本,常用于「至少」「不少于」语义:年龄下限、库存下限、时间起止。与 $lte 组合可表达闭区间范围查询。
| 分类 | 比较 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ <字段>: { $gte: <值> } }
⚙️ 参数
| 字段 | 要匹配的文档字段名,可用点路径访问嵌套字段。 |
|---|---|
| 值 | 要比较的下限值,包含该值本身。 |
返回值:匹配的文档游标
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $gte:查询年龄至少 18 的用户
// 恰好 18 岁也会被返回
db.users.find({ age: { $gte: 18 } })
// 闭区间:年龄 18 到 30
db.users.find({ age: { $gte: 18, $lte: 30 } })
运行结果:
// 返回所有 age 大于等于 18 的用户;以及 18 到 30 闭区间的用户
📌 注意事项
- $gte 包含边界值,与 $gt 仅此一处不同
- 数值、字符串、日期均可比较,但类型不一致时不匹配
- 与 $lte 组合时若边界写反(如 $gte: 30, $lte: 18)不会有任何匹配
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Q$gte 和 $gt 哪个性能更好?
A两者性能相同,都可走索引。选择取决于是否需要包含边界值,不要为了性能二选一。
Q怎么查「库存至少 10 件」的商品?
A用 $gte 表达下限:{ stock: { $gte: 10 } }。
Q$gte 会匹配 null 吗?
A不会。null 与数值比较时不会匹配,$gte 只匹配可比较的同类型值。