这是我正在寻找的(确实)一个粗糙的示例-给定具有以下架构的文档:
from mongoengine import Document, StringField, DateTimeField
class Client(Document):
name = StringField()
activated_on = DateTimeField(required=False)
如何查询从未激活过的客户端或在某个时间点之前未激活的客户端?
换句话说,如果我搜索没有激活日期或在2016-07-22之前发生激活日期的条目,则两个文档都将显示在结果中。
{ "name": "Bob Lawbla" }
{ "name": "Gerry Mander", "activated_on": 2016-07-01T00:00:00 }
我知道我可以做:
Client.objects(activated_on__lte=datetime.datetime(2016,7,22))
和
Client.objects(activated_on__exists=False)
但是如何将它们组合成一个查询?
您可以使用Q类:
from mongoengine.queryset.visitor import Q as MQ
Client.objects(MQ(activated_on__exists=False)|MQ(activated_on__lte=datetime.datetime(2016,7,22)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句