如果我有两个对象,如:如何加快mongoengine查询
class User(Document):
name = StringField()
following = ListField(ReferenceField('User'))
meta = {
'indexes': [
'following',
]
}
class Media(Document):
owner = ReferenceField('User')
url = StringField()
is_hidden = BooleanField()
posted_date = Date
meta = {
'indexes': [
'owner',
'posted_date',
'is_hidden',
]
}
,当我想查找下列条件的地方是不是隐藏和它的主人是一个人,我以下,这是最近张贴,我有这样的一个查询:
user = User.objects.first()
Media.objects(Q(owner__in=user.following) &
Q(is_hidden=False) &
Q(posted_date__gte=dt.now()-dt.timedelta(days=3))
这是不缩放,变得更慢。我能做些什么来加快这些复杂查询的性能?