如果我有兩個對象,如:如何加快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))
這是不縮放,變得更慢。我能做些什麼來加快這些複雜查詢的性能?