$gt (Greater Than)
Last updated: 2026-10-09
$gt (Greater Than)
$gt is the expression-form greater-than comparison. It takes two arguments and returns true when the first is greater than the second. It is used in expression contexts such as $project or $expr, for example to flag orders whose price exceeds cost or values above a threshold. Unlike the query operator, the expression form writes { $gt: [expr1, expr2] }. Comparisons follow BSON type ordering, so mixed-type comparisons order by type rather than throwing, with null ordered before numbers.
| Category | Set, Condition & Conversion |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $gt: [ <expression1>, <expression2> ] }
⚙️ Parameters
| expression 1 | The first expression to compare. |
|---|---|
| expression 2 | The second expression to compare. |
Returns:true when the first is greater than the second, false otherwise
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $gt: flag orders with positive margin
db.orders.aggregate([
{ $project: {
profitable: { $gt: ['$price', '$cost'] }
} }
])
Output:
{ '_id': 1, 'profitable': true }
{ '_id': 2, 'profitable': false }
📌 Notes
- Compares exactly two arguments; nest for more
- Different types compare by BSON type order
- Unlike $gte, equality does not count
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhat is the difference between $gt and $gte?
A$gt is strictly greater; $gte also accepts equality.
QCan $gt compare strings?
AYes, strings compare by lexicographic character order.
QHow do I use $gt inside $match?
AWrap it in $expr: { $gt: [...] }, or use the field-plus-value syntax directly in $match.