1.过滤查询()
QuerySet可以通过使用字段查找关键字参数调用对象来过、查询。关键字参数中的键对应于 Document您正在查询的字段:
T.objects(country='uk')
关键字:country是T的属性
2.查询运算符
将运算符名称附加到带有双下划线的键后面
查询中除相等之外的运算符——只需将运算符名称附加到带有双下划线的键上(后缀):
T.objects(age__lte=18)
查询age小于等于18的数据
可用的运算符如下:
ne- 不等于lt- 少于lte– 小于或等于gt- 比...更棒gte– 大于或等于not– 否定标准检查,可在其他运算符之前使用(例如 )Q(age__not__mod=(5, 0))in– 值在列表中(应提供值列表)nin– 值不在列表中(应提供值列表)mod– , 其中和是两个提供的值value % x == y``x``yall– 提供的值列表中的每个项目都在数组中size– 数组的大小是exists– 字段值存在
3.字符串查询
将运算符名称附加到带有双下划线的键后面
以下运算符可用作使用正则表达式进行查询的快捷方式:
exact– 字符串字段与值完全匹配iexact– 字符串字段与值完全匹配(不区分大小写)contains– 字符串字段包含值icontains– 字符串字段包含值(不区分大小写)startswith– 字符串字段以值开头istartswith– 字符串字段以值开头(不区分大小写)endswith– 字符串字段以值结尾iendswith– 字符串字段以值结尾(不区分大小写)wholeword– 字符串字段包含整个单词iwholeword– 字符串字段包含整个单词(不区分大小写)regex– 通过正则表达式匹配字符串字段iregex– 通过正则表达式匹配字符串字段(不区分大小写)match– 执行 $elemMatch,以便您可以匹配数组中的整个文档
4.原始查询
可以提供原始PyMongo查询作为查询参数,该参数将直接集成到查询中。这是使用__raw__关键字参数完成的:
T.objects(__raw__={'tags': 'coding'})
同样,可以为该update()方法提供原始更新:
T.objects(tags='coding').update(__raw__={'$set': {'tags': 'coding'}})
并且两者也可以结合:
T.objects(__raw__={'tags': 'coding'}).update(__raw__={'$set': {'tags': 'coding'}})
5.原子更新(更新操作)
将运算符名称附加到带有双下划线的键前面
文档可以通过使用 a 上的 update_one(), update()和 modify()方法以及 a 上的 QuerySet( modify()带 save()参数save_condition) 来自动更新Document。您可以在这些方法中使用几种不同的“修饰符”:
set– 设置特定值set_on_insert– 仅当这是新文档时设置需要添加 upsert=True_unset– 删除特定值(自 MongoDB v1.3 起)max- 仅当值更大时更新min– 仅在值较小时更新inc– 将一个值增加一个给定的数量dec– 将值递减给定数量push– 将值附加到列表push_all– 将多个值附加到列表中pop–根据值删除列表的第一个或最后一个元素pull– 从列表中删除一个值pull_all- 从列表中删除几个值add_to_set– 仅在列表中未添加值时才向列表中添加值rename– 重命名键名
原子更新均是在文档实例的基础上操作