如何查询 Python mongoengine 查询集?
How to query a Python mongoengine Queryset?
如何查询MongoEngine返回的queryset?根据文档,我找不到有关查询查询集的任何信息:http://docs.mongoengine.org/apireference.html#mongoengine.queryset.QuerySet
import datetime
thirty_days_in_the_past = datetime.datetime.now() - datetime.timedelta(days=30)
def last_messages(from_date):
messages = Messages.objects(sent_at__gt=from_date)
return messages
messages = last_messages(thirty_days_in_the_past)
然后我想获取带有特定子查询的消息,例如查找 author_id "ABC":
messages.query(author_id="ABC")
我希望这样做的原因是初始查询本身由一个组件使用,而它的子查询由另一个组件使用,我想重用该查询。
只需使用缩小的查询调用查询集或使用 .filter()
(这只是一个别名)。出于某种原因,mongoengine documentation 并没有真正提到仅使用另一个查询(以及 filter
的存在)调用查询集的可能性。
author_messages = messages(author_id="ABC")
# or
author_messages = messages.filter(author_id="ABC")
"Fun fact",mongoengine 从中汲取了大量灵感的 django orm(整个查询语言,包括 __
关键字语法)确实在其 filter
中提到了方法 docs :)
如何查询MongoEngine返回的queryset?根据文档,我找不到有关查询查询集的任何信息:http://docs.mongoengine.org/apireference.html#mongoengine.queryset.QuerySet
import datetime
thirty_days_in_the_past = datetime.datetime.now() - datetime.timedelta(days=30)
def last_messages(from_date):
messages = Messages.objects(sent_at__gt=from_date)
return messages
messages = last_messages(thirty_days_in_the_past)
然后我想获取带有特定子查询的消息,例如查找 author_id "ABC":
messages.query(author_id="ABC")
我希望这样做的原因是初始查询本身由一个组件使用,而它的子查询由另一个组件使用,我想重用该查询。
只需使用缩小的查询调用查询集或使用 .filter()
(这只是一个别名)。出于某种原因,mongoengine documentation 并没有真正提到仅使用另一个查询(以及 filter
的存在)调用查询集的可能性。
author_messages = messages(author_id="ABC")
# or
author_messages = messages.filter(author_id="ABC")
"Fun fact",mongoengine 从中汲取了大量灵感的 django orm(整个查询语言,包括 __
关键字语法)确实在其 filter
中提到了方法 docs :)