MongoEngine – 查询运算符

MongoEngine – 查询运算符

除了用于检查平等性的=操作符外,MongoEngine中还定义了以下逻辑操作符。

ne 不等于
lt 小于
lte 小于或等于
gt 大于
gte 大于或等于
not 否定一个标准检查,可以在其他运算符之前使用
in 值在列表中
nin 值不在列表中
mod value % x == y,其中x和y是两个提供的值
all 提供的数值列表中的每一项都在数组中
size 数组的大小是
exists 字段的值存在

这些操作符必须用双下划线__连接到字段名。

要使用大于(gt)运算符,请使用以下格式 –

#using greater than operator
for product in products.objects(price__gt=10000):
   print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)

输出

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)

输出

ID: 2 Name: TV Price: 50000
ID: 5 Name: Printer Price: 12500

你可以使用以下运算符作为快捷方式,将regex表达式应用到查询中,以实现过滤。

exact 字符串字段完全匹配值
iexact 字符串字段与值完全匹配(不区分大小写)。
contains 字符串字段包含值
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)

输出

ID: 1 Name: Laptop Price: 25000
ID: 3 Name: Router Price: 2000

在另一个字符串查询的例子中,以下代码显示以’er’结尾的名字−

for product in products.objects(Name__endswith='er'):
   print ('ID:',product.ProductID, 'Name:',product.Name, 'Price:',product.price)

输出

ID: 3 Name: Router Price: 2000
ID: 4 Name: Scanner Price: 5000
ID: 5 Name: Printer Price: 12500

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程