【Django基础】5、DjangoORM 适用MongoDB的ORM操作符

    技术2024-08-05  68

    高级查询

    你需要将约束条件进行与,或的操作。你可以使用mongoengine提供的 Q 类来实现,一个 Q 类代表了一个查询的一部分,里面的参数设置与你查询document的时候相同。 建立一个复杂查询的时候,你需要用 & 或 | 操作符将 Q 对象连结起来,例子如下: Post.objects(Q(name=“jack”) | Q(age=66))

    查询相关操作符,适用于django-mongodb:

    ne – 不等于 lt – 小于 # 适用于时间格式 lte – 小于等于 # 适用于时间格式 gt – 大于 # 适用于时间格式 gte – 大于等于 # 适用于时间格式 not – 使其检查的反面,需要使用在其他操作符之前(e.g. Q(age__not__mod=5)) in – 值在list里面 nin – 值不在list里面 mod – value % x == y all – list里面所有的值 size – 这个array的大小 exists – 存在这个值

    在需要进行正则检查的时候是比较快捷的方法:

    exact – 字符串型字段完全匹配这个值 iexact – 字符串型字段完全匹配这个值(大小写敏感) contains – 字符串字段包含这个值 icontains –字符串字段包含这个值(大小写敏感) startswith – 字符串字段由这个值开头 istartswith –字符串字段由这个值开头(大小写敏感) endswith – 字符串字段由这个值结尾 iendswith –字符串字段由这个值结尾(大小写敏感) match – 使你可以使用一整个document与数组进行匹配查询list

    Processed: 0.012, SQL: 9