Operators API¶
This page documents all query operator classes.
Logical Operators¶
And
¶
Bases: QueryOperator
Logical AND operator for combining multiple conditions.
Example
And(conditions=[ ... {"status": "active"}, ... {"age": {"$gt": 18}} ... ]).model_dump() {"$and": [{"status": "active"}, {"age": {"$gt": 18}}]}
Source code in mongo_aggro/operators/logical.py
Or
¶
Bases: QueryOperator
Logical OR operator for combining multiple conditions.
Example
Or(conditions=[ ... {"status": "active"}, ... {"status": "pending"} ... ]).model_dump() {"$or": [{"status": "active"}, {"status": "pending"}]}
Source code in mongo_aggro/operators/logical.py
Not
¶
Bases: QueryOperator
Logical NOT operator for negating a condition.
Example
Not(condition={"$regex": "^test"}).model_dump() {"$not": {"$regex": "^test"}}
Source code in mongo_aggro/operators/logical.py
Nor
¶
Bases: QueryOperator
Logical NOR operator - matches documents that fail all conditions.
Example
Nor(conditions=[ ... {"price": {"$gt": 1000}}, ... {"rating": {"$lt": 3}} ... ]).model_dump() {"$nor": [{"price": {"$gt": 1000}}, {"rating": {"$lt": 3}}]}
Source code in mongo_aggro/operators/logical.py
Expression Operator¶
Expr
¶
Bases: QueryOperator
$expr operator for using aggregation expressions in queries.
Accepts both raw dicts and expression objects (EqExpr, AndExpr, etc.). Expression objects are automatically serialized via model_dump().
Example
Expr(expression={"$eq": ["$field1", "$field2"]}).model_dump() {"$expr": {"$eq": ["$field1", "$field2"]}}
from mongo_aggro.expressions import F, EqExpr Expr(expression=(F("status") == "active")).model_dump() {"$expr": {"$eq": ["$status", "active"]}}
Source code in mongo_aggro/operators/logical.py
Comparison Operators¶
Eq
¶
Bases: QueryOperator
$eq comparison operator.
Source code in mongo_aggro/operators/comparison.py
Ne
¶
Bases: QueryOperator
$ne (not equal) comparison operator.
Source code in mongo_aggro/operators/comparison.py
Gt
¶
Bases: QueryOperator
$gt (greater than) comparison operator.
Source code in mongo_aggro/operators/comparison.py
Gte
¶
Bases: QueryOperator
$gte (greater than or equal) comparison operator.
Source code in mongo_aggro/operators/comparison.py
Lt
¶
Bases: QueryOperator
$lt (less than) comparison operator.
Source code in mongo_aggro/operators/comparison.py
Lte
¶
Bases: QueryOperator
$lte (less than or equal) comparison operator.
Source code in mongo_aggro/operators/comparison.py
In
¶
Bases: QueryOperator
$in operator - matches any value in the array.
Source code in mongo_aggro/operators/comparison.py
Nin
¶
Bases: QueryOperator
$nin operator - matches none of the values in the array.
Source code in mongo_aggro/operators/comparison.py
String Operators¶
Regex
¶
Bases: QueryOperator
$regex operator for pattern matching.
Source code in mongo_aggro/operators/regex.py
Field Operators¶
Exists
¶
Bases: QueryOperator
$exists operator - matches documents where field exists/doesn't.
Source code in mongo_aggro/operators/element.py
Type
¶
Bases: QueryOperator
$type operator - matches documents where field is of specified type.
Source code in mongo_aggro/operators/element.py
Array Operators¶
ElemMatch
¶
Bases: QueryOperator
$elemMatch operator - matches array elements.
Source code in mongo_aggro/operators/array.py
Size
¶
Bases: QueryOperator
$size operator - matches arrays with specific length.
Source code in mongo_aggro/operators/array.py
All
¶
Bases: QueryOperator
$all operator - matches arrays containing all specified elements.
Source code in mongo_aggro/operators/array.py
Bitwise Operators¶
BitsAllClear
¶
Bases: QueryOperator
$bitsAllClear operator - matches where all bit positions are 0.
Example
BitsAllClear(mask=35).model_dump()
BitsAllClear(mask=[1, 5]).model_dump()
Source code in mongo_aggro/operators/bitwise.py
BitsAllSet
¶
Bases: QueryOperator
$bitsAllSet operator - matches where all bit positions are 1.
Example
BitsAllSet(mask=35).model_dump()
Source code in mongo_aggro/operators/bitwise.py
BitsAnyClear
¶
Bases: QueryOperator
$bitsAnyClear operator - matches where any bit position is 0.
Example
BitsAnyClear(mask=35).model_dump()
Source code in mongo_aggro/operators/bitwise.py
BitsAnySet
¶
Bases: QueryOperator
$bitsAnySet operator - matches where any bit position is 1.
Example
BitsAnySet(mask=35).model_dump()
Source code in mongo_aggro/operators/bitwise.py
Geospatial Operators¶
GeoIntersects
¶
Bases: QueryOperator
$geoIntersects operator - matches geometries that intersect.
Example
GeoIntersects(geometry={ ... "type": "Polygon", ... "coordinates": [[[-100, 60], [-100, 0], [100, 0], [100, 60]]] ... }).model_dump() {"$geoIntersects": {"$geometry": {...}}}
Source code in mongo_aggro/operators/geo.py
GeoWithin
¶
Bases: QueryOperator
$geoWithin operator - matches geometries within a bounding region.
Example
GeoWithin(geometry={ ... "type": "Polygon", ... "coordinates": [[[-100, 60], [-100, 0], [100, 0], [100, 60]]] ... }).model_dump() {"$geoWithin": {"$geometry": {...}}}
Using legacy shapes¶
GeoWithin(box=[[-100, -100], [100, 100]]).model_dump() {"$geoWithin": {"$box": [[-100, -100], [100, 100]]}}
Source code in mongo_aggro/operators/geo.py
Near
¶
Bases: QueryOperator
$near operator - matches geospatial objects near a point.
Example
Near( ... geometry={"type": "Point", "coordinates": [-73.9667, 40.78]}, ... max_distance=5000, ... min_distance=1000 ... ).model_dump() {"$near": {"$geometry": {...}, "$maxDistance": 5000, "$minDistance": 1000}}
Source code in mongo_aggro/operators/geo.py
NearSphere
¶
Bases: QueryOperator
$nearSphere operator - matches geospatial objects near a point on sphere.
Example
NearSphere( ... geometry={"type": "Point", "coordinates": [-73.9667, 40.78]}, ... max_distance=5000 ... ).model_dump() {"$nearSphere": {"$geometry": {...}, "$maxDistance": 5000}}
Source code in mongo_aggro/operators/geo.py
Miscellaneous Operators¶
Mod
¶
Bases: QueryOperator
$mod operator - matches where field % divisor == remainder.
Example
Mod(divisor=4, remainder=0).model_dump()
Source code in mongo_aggro/operators/misc.py
JsonSchema
¶
Bases: QueryOperator
$jsonSchema operator - validates documents against JSON Schema.
Example
JsonSchema(json_schema={ ... "bsonType": "object", ... "required": ["name", "email"], ... "properties": { ... "name": {"bsonType": "string"}, ... "email": {"bsonType": "string"} ... } ... }).model_dump() {"$jsonSchema": {...}}
Source code in mongo_aggro/operators/misc.py
Where
¶
Bases: QueryOperator
$where operator - matches using JavaScript expression.
Note: $where is slow and should be avoided when possible.
Example
Where(expression="this.credits == this.debits").model_dump()
Source code in mongo_aggro/operators/misc.py
Text
¶
Bases: QueryOperator
$text operator - performs text search on indexed fields.
Example
Text(search="coffee shop", language="en").model_dump() {"$text": {"$search": "coffee shop", "$language": "en"}}