Mongoengine 简明教程
MongoEngine - Query Operators
除了使用 = 操作符检查是否相等外,MongoEngine 中还定义了以下逻辑操作符。
ne |
not equal to |
lt |
less than |
lte |
小于或等于 |
gt |
greater than |
gte |
大于或等于 |
not |
否定标准检查,可以在其他操作符之前使用 |
in |
value is in list |
nin |
值不在列表中 |
mod |
value % x == y,其中 x 和 y 是提供的两个值 |
all |
提供的列表中的每一项都在数组中 |
size |
数组的大小是 |
exists |
value for field exists |
这些运算符必须附加到带有双下划线 __ 的字段名。
要使用大于运算符 (gt),使用以下格式 -
#using greater than operator
for product in products.objects(price__gt=10000):
print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)
Output
ID: 1 Name: Laptop Price: 25000
ID: 2 Name: TV Price: 50000
ID: 5 Name: Printer Price: 12500
in 运算符类似于 Python 的 in 运算符。对于与列表中名称相匹配的产品名称,使用以下代码 -
for product in products.objects(Name__in=['TV', 'Printer']):
print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)
Output
ID: 2 Name: TV Price: 50000
ID: 5 Name: Printer Price: 12500
您可以使用以下运算符作为应用于查询的正则表达式的快捷方式 -
exact |
字符串字段与值完全匹配 |
iexact |
字符串字段与值完全匹配(不区分大小写) |
contains |
string field contains value |
icontains |
字符串字段包含值(不区分大小写) |
startswith |
字符串字段以值开头 |
istartswith |
字符串字段以值开头(不区分大小写) |
endswith |
字符串字段以值结尾 |
iendswith |
字符串字段以值结尾(不区分大小写) |
match |
执行 $elemMatch,以便可以在数组中匹配整个文档 |
例如,以下代码将打印名称中包含 'o' 的产品详细信息 -
for product in products.objects(Name__contains='o'):
print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)