1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
from typing import Union
from beanie.odm.fields import ExpressionField
from beanie.odm.operators.find import BaseFindOperator
class BaseFindBitwiseOperator(BaseFindOperator):
operator = ""
def __init__(self, field: Union[str, ExpressionField], bitmask):
self.field = field
self.bitmask = bitmask
@property
def query(self):
return {self.field: {self.operator: self.bitmask}}
class BitsAllClear(BaseFindBitwiseOperator):
"""
`$bitsAllClear` query operator
MongoDB doc:
<https://docs.mongodb.com/manual/reference/operator/query/bitsAllClear/>
"""
operator = "$bitsAllClear"
class BitsAllSet(BaseFindBitwiseOperator):
"""
`$bitsAllSet` query operator
MongoDB doc:
https://docs.mongodb.com/manual/reference/operator/query/bitsAllSet/
"""
operator = "$bitsAllSet"
class BitsAnyClear(BaseFindBitwiseOperator):
"""
`$bitsAnyClear` query operator
MongoDB doc:
https://docs.mongodb.com/manual/reference/operator/query/bitsAnyClear/
"""
operator = "$bitsAnyClear"
class BitsAnySet(BaseFindBitwiseOperator):
"""
`$bitsAnySet` query operator
MongoDB doc:
https://docs.mongodb.com/manual/reference/operator/query/bitsAnySet/
"""
operator = "$bitsAnySet"
|