- MongoEngine 教程
- MongoEngine - 首页
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - 对象文档映射器
- MongoEngine - 安装
- MongoEngine - 连接到MongoDB数据库
- MongoEngine - 文档类
- MongoEngine - 动态模式
- MongoEngine - 字段
- MongoEngine - 添加/删除文档
- MongoEngine - 查询数据库
- MongoEngine - 过滤器
- MongoEngine - 查询操作符
- MongoEngine - QuerySet 方法
- MongoEngine - 排序
- MongoEngine - 自定义Query Sets
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高级查询
- MongoEngine - 文档继承
- MongoEngine - 原子更新
- MongoEngine - Javascript
- MongoEngine - GridFS
- MongoEngine - 信号
- MongoEngine - 文本搜索
- MongoEngine - 扩展
- MongoEngine 有用资源
- MongoEngine - 快速指南
- MongoEngine - 有用资源
- MongoEngine - 讨论
MongoEngine - 查询操作符
除了用于检查相等的 = 操作符之外,MongoEngine 中还定义了以下逻辑操作符。
| ne | 不等于 |
| lt | 小于 |
| lte | 小于或等于 |
| gt | 大于 |
| gte | 大于或等于 |
| not | 否定标准检查,可以在其他操作符之前使用 |
| in | 值在列表中 |
| nin | 值不在列表中 |
| mod | 值 % 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
您可以使用以下操作符作为正则表达式快捷方式,将过滤器应用于查询:
| 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
广告