Find
bunnet.odm.operators.find.logical
Or
class Or(LogicalOperatorForListOfExpressions)
$orquery operatorExample:
class Product(Document): price: float category: str Or(Product.price<10, Product.category=="Sweets")Will return query object like
{"$or": [{"price": {"$lt": 10}}, {"category": "Sweets"}]}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/or/
And
class And(LogicalOperatorForListOfExpressions)
$andquery operatorExample:
class Product(Document): price: float category: str And(Product.price<10, Product.category=="Sweets")Will return query object like
{"$and": [{"price": {"$lt": 10}}, {"category": "Sweets"}]}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/and/
Nor
class Nor(BaseFindLogicalOperator)
$norquery operatorExample:
class Product(Document): price: float category: str Nor(Product.price<10, Product.category=="Sweets")Will return query object like
{"$nor": [{"price": {"$lt": 10}}, {"category": "Sweets"}]}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/nor/
Not
class Not(BaseFindLogicalOperator)
$notquery operatorExample:
class Product(Document): price: float category: str Not(Product.price<10)Will return query object like
{"$not": {"price": {"$lt": 10}}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/not/
bunnet.odm.operators.find.array
All
class All(BaseFindArrayOperator)
$allarray query operatorExample:
class Sample(Document): results: List[int] All(Sample.results, [80, 85])Will return query object like
{"results": {"$all": [80, 85]}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/all
ElemMatch
class ElemMatch(BaseFindArrayOperator)
$elemMatcharray query operatorExample:
class Sample(Document): results: List[int] ElemMatch(Sample.results, {"$in": [80, 85]})Will return query object like
{"results": {"$elemMatch": {"$in": [80, 85]}}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/elemMatch/
Size
class Size(BaseFindArrayOperator)
$sizearray query operatorExample:
class Sample(Document): results: List[int] Size(Sample.results, 2)Will return query object like
{"results": {"$size": 2}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/size/
bunnet.odm.operators.find.evaluation
Expr
class Expr(BaseFindEvaluationOperator)
$typequery operatorExample:
class Sample(Document): one: int two: int Expr({"$gt": [ "$one" , "$two" ]})Will return query object like
{"$expr": {"$gt": [ "$one" , "$two" ]}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/expr/
JsonSchema
class JsonSchema(BaseFindEvaluationOperator)
$jsonSchemaquery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/jsonSchema/
Mod
class Mod(BaseFindEvaluationOperator)
$modquery operatorExample:
class Sample(Document): one: int Mod(Sample.one, 4, 0)Will return query object like
{ "one": { "$mod": [ 4, 0 ] } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/mod/
RegEx
class RegEx(BaseFindEvaluationOperator)
$regexquery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/regex/
Text
class Text(BaseFindEvaluationOperator)
$textquery operatorExample:
class Sample(Document): description: Indexed(str, pymongo.TEXT) Text("coffee")Will return query object like
{ "$text": { "$search": "coffee" , "$caseSensitive": False, "$diacriticSensitive": False } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/text/
Text.__init__
def __init__(search: str,
             language: Optional[str] = None,
             case_sensitive: bool = False,
             diacritic_sensitive: bool = False)
Arguments:
search: strlanguage: Optional[str] = Nonecase_sensitive: bool = Falsediacritic_sensitive: bool = False
Where
class Where(BaseFindEvaluationOperator)
$wherequery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/where/
bunnet.odm.operators.find.element
Exists
class Exists(BaseFindElementOperator)
$existsquery operatorExample:
class Product(Document): price: float Exists(Product.price, True)Will return query object like
{"price": {"$exists": True}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/exists/
Type
class Type(BaseFindElementOperator)
$typequery operatorExample:
class Product(Document): price: float Type(Product.price, "decimal")Will return query object like
{"price": {"$type": "decimal"}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/type/
bunnet.odm.operators.find.comparison
Eq
class Eq(BaseFindComparisonOperator)
equalquery operatorExample:
class Product(Document): price: float Eq(Product.price, 2)Will return query object like
{"price": 2}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/eq/
GT
class GT(BaseFindComparisonOperator)
$gtquery operatorExample:
class Product(Document): price: float GT(Product.price, 2)Will return query object like
{"price": {"$gt": 2}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/gt/
GTE
class GTE(BaseFindComparisonOperator)
$gtequery operatorExample:
class Product(Document): price: float GTE(Product.price, 2)Will return query object like
{"price": {"$gte": 2}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/gte/
In
class In(BaseFindComparisonOperator)
$inquery operatorExample:
class Product(Document): price: float In(Product.price, [2, 3, 4])Will return query object like
{"price": {"$in": [2, 3, 4]}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/in/
NotIn
class NotIn(BaseFindComparisonOperator)
$ninquery operatorExample:
class Product(Document): price: float NotIn(Product.price, [2, 3, 4])Will return query object like
{"price": {"$nin": [2, 3, 4]}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/nin/
LT
class LT(BaseFindComparisonOperator)
$ltquery operatorExample:
class Product(Document): price: float LT(Product.price, 2)Will return query object like
{"price": {"$lt": 2}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/lt/
LTE
class LTE(BaseFindComparisonOperator)
$ltequery operatorExample:
class Product(Document): price: float LTE(Product.price, 2)Will return query object like
{"price": {"$lte": 2}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/lte/
NE
class NE(BaseFindComparisonOperator)
$nequery operatorExample:
class Product(Document): price: float NE(Product.price, 2)Will return query object like
{"price": {"$ne": 2}}MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/ne/
bunnet.odm.operators.find.geospatial
GeoIntersects
class GeoIntersects(BaseFindGeospatialOperator)
$geoIntersectsquery operatorExample:
class GeoObject(BaseModel): type: str = "Point" coordinates: Tuple[float, float] class Place(Document): geo: GeoObject class Collection: name = "places" indexes = [ [("geo", pymongo.GEOSPHERE)], # GEO index ] GeoIntersects(Place.geo, "Polygon", [[0,0], [1,1], [3,3]])Will return query object like
{ "geo": { "$geoIntersects": { "$geometry": { "type": "Polygon", "coordinates": [[0,0], [1,1], [3,3]], } } } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/geoIntersects/
GeoWithin
class GeoWithin(BaseFindGeospatialOperator)
$geoWithinquery operatorExample:
class GeoObject(BaseModel): type: str = "Point" coordinates: Tuple[float, float] class Place(Document): geo: GeoObject class Collection: name = "places" indexes = [ [("geo", pymongo.GEOSPHERE)], # GEO index ] GeoWithin(Place.geo, "Polygon", [[0,0], [1,1], [3,3]])Will return query object like
{ "geo": { "$geoWithin": { "$geometry": { "type": "Polygon", "coordinates": [[0,0], [1,1], [3,3]], } } } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/geoWithin/
Box
class Box(BaseFindGeospatialOperator)
$boxquery operatorExample:
class GeoObject(BaseModel): type: str = "Point" coordinates: Tuple[float, float] class Place(Document): geo: GeoObject class Collection: name = "places" indexes = [ [("geo", pymongo.GEOSPHERE)], # GEO index ] Box(Place.geo, lower_left=[10,12], upper_right=[15,20])Will return query object like
{ "geo": { "$geoWithin": { "$box": [[10, 12], [15, 20]] } } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/box/
Near
class Near(BaseFindGeospatialOperator)
$nearquery operatorExample:
class GeoObject(BaseModel): type: str = "Point" coordinates: Tuple[float, float] class Place(Document): geo: GeoObject class Collection: name = "places" indexes = [ [("geo", pymongo.GEOSPHERE)], # GEO index ] Near(Place.geo, 1.2345, 2.3456, min_distance=500)Will return query object like
{ "geo": { "$near": { "$geometry": { "type": "Point", "coordinates": [1.2345, 2.3456], }, "$maxDistance": 500, } } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/near/
NearSphere
class NearSphere(Near)
$nearSpherequery operatorExample:
class GeoObject(BaseModel): type: str = "Point" coordinates: Tuple[float, float] class Place(Document): geo: GeoObject class Collection: name = "places" indexes = [ [("geo", pymongo.GEOSPHERE)], # GEO index ] NearSphere(Place.geo, 1.2345, 2.3456, min_distance=500)Will return query object like
{ "geo": { "$nearSphere": { "$geometry": { "type": "Point", "coordinates": [1.2345, 2.3456], }, "$maxDistance": 500, } } }MongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/nearSphere/
bunnet.odm.operators.find.bitwise
BitsAllClear
class BitsAllClear(BaseFindBitwiseOperator)
$bitsAllClearquery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/bitsAllClear/
BitsAllSet
class BitsAllSet(BaseFindBitwiseOperator)
$bitsAllSetquery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/bitsAllSet/
BitsAnyClear
class BitsAnyClear(BaseFindBitwiseOperator)
$bitsAnyClearquery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/bitsAnyClear/
BitsAnySet
class BitsAnySet(BaseFindBitwiseOperator)
$bitsAnySetquery operatorMongoDB doc: https://docs.mongodb.com/manual/reference/operator/query/bitsAnySet/