Python Mongoengine查询列表字段

Python Mongoengine查询列表字段,python,django,mongoengine,Python,Django,Mongoengine,我有以下型号: class Deal(Document): stores = ListField(ReferenceField('Store', dbref=False), required=True) class Store(Document): fb_page_id = StringField(verbose_name=_('Facebook PageId'), default="") 我已尝试按store.fb\u page\u id查询交易 def get_curre

我有以下型号:

class Deal(Document):
    stores = ListField(ReferenceField('Store', dbref=False), required=True)

class Store(Document):
    fb_page_id = StringField(verbose_name=_('Facebook PageId'), default="")
我已尝试按store.fb\u page\u id查询交易

def get_current_deal_by_fb_page_id(self, request):
    pageid=1556714851256344
    store=Store.objects(fb_page_id=pageid)
    return Deal.objects(stores__fb_page_id=pageid).all()

def get_current_deal_by_fb_page_id(self, request):
    pageid=1556714851256344
    return Deal.objects(__raw__={'stores.fb_page_id': pageid})

但是我不能得到数据。这里怎么了?

我找到了答案:

class Deal(Document):
    stores = ListField(ReferenceField('Store', dbref=False), required=True)

    @classmethod
    def deals_by_fb_page(cls, fb_page_id):
        deals = []
        for deal in cls.objects():
            for store in deal.stores:
                if store.fb_page_id == fb_page_id:
                    deals.append(deal)
        return deals

这对于大型数据集来说是非常低效的