从数据库过滤记录时遇到问题。在我的数据库中,我有包含dictfield的记录。
例如 地区是一本字典,其中包含其他字典,例如
region = {'eastus': {'percentage_change': 0}, 'westus': {'percentage_change': 0}}
并且我想获取eastus
或westus
。
我已经尝试过类似的操作,但是我得到了一个空列表。
MyModel.objects.filter(region__eq='eastus')
对此问题有什么建议吗?
答案 0 :(得分:0)
我相信您可以使用exists
运算符(http://docs.mongoengine.org/guide/querying.html#query-operators)
MyModel.objects.filter(region__eastus__exists=True)
关于“或”,您应该使用Q
类(http://docs.mongoengine.org/guide/querying.html#advanced-queries),因此:
MyModel.objects.filter(Q(region__eastus__exists=True) | Q(region__westus__exists=True))
如果您使用的键不简单(例如,包含奇特字符或短划线),则可以使用__raw__运算符:
MyModel.objects.filter(__raw__={'region.a-fancy-key': {'$exists': True}})