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
这对于大型数据集来说是非常低效的