$gt(大于)
最后更新:2026-10-09
$gt(大于)
$gt是表达式版的大于比较,接受两个参数,前一个大于后一个时返回true。用于$project、$expr等表达式上下文,例如筛选价格大于成本的订单、判断数值是否超阈值。与查询操作符不同,表达式版直接写{ $gt: [expr1, expr2] }。比较遵循BSON类型顺序,不同类型间比较按类型序而非报错,null排在数字之前。
| 分类 | 集合·条件·转换 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $gt: [ <表达式1>, <表达式2> ] }
⚙️ 参数
| 表达式1 | 参与比较的第一个表达式。 |
|---|---|
| 表达式2 | 参与比较的第二个表达式。 |
返回值:第一个大于第二个返回true,否则返回false
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $gt:标记毛利为正的订单
db.orders.aggregate([
{ $project: {
profitable: { $gt: ['$price', '$cost'] }
} }
])
运行结果:
{ '_id': 1, 'profitable': true }
{ '_id': 2, 'profitable': false }
📌 注意事项
- 只比较两个参数,多参数需嵌套
- 不同类型按BSON类型顺序比较
- 与$gte的区别在于是否包含相等
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$gt和$gte有什么区别?
A$gt是严格大于,$gte包含等于的情况。
Q$gt能比较字符串吗?
A能,按字符串的字符顺序(词典序)比较。
Q$gt在$match里怎么用?
A用$expr: { $gt: [...] }包裹,或在$match里直接用字段加值语法。