在django中搜索mysql json字段
jsonLookup的Python项目详细描述
jsonlookup
在django的mysql json字段中搜索
挑战
MySQL在MySQLServer5.7中引入了JSON字段,目前它与jsonfield在数据保存和检索方面工作得很好。搜索只能通过like运算符来完成,这对所有函数都不方便。
目标
为django创建一个新的自定义查找操作符has,它将支持mysql中的json搜索。
安装
安装软件包
$ pip install jsonLookup
注册到jsonfields
fromjsonLookupimporthasLookup,jcontainsLookupJSONField.register_lookup(hasLookup)JSONField.register_lookup(jcontainsLookup)
编写json查询
# Create test objectsUser.objects.create(name="Ahmed",properties={"city":"Giza","Address":{"district":"Ahram","Code":11263}})User.objects.create(name="Mohamed",properties={"city":"Cairo","Address":{"district":"Helipolis","Code":11351}})# Run first queryq=User.objects.filter(properties__has="$.city=Giza")printq[0].name"Ahmed"# Run Second queryq=User.objects.filter(properties__has="$.Address.Code=11351")printq[0].name"Mohamed"