Search MySQL JSON fields in Django
Project description
jsonLookup
Searching in MySQL JSON field in Django
Challenge
MySQL has introduced JSON fields in MySQL Server 5.7, Currently it works well with jsonfield for Data Saving and retrieval. The problem that Searching can only be done through LIKE operator which isn't convinent for all function.
Objective
Creating a new custom lookup operator "has" for Django that will support JSON Search in MySQL.
Installation
Install the Package
$ pip install jsonLookup
Register to JSONFields
from jsonLookup import hasLookup,jcontainsLookup
JSONField.register_lookup(hasLookup)
JSONField.register_lookup(jcontainsLookup)
Write your JSON queries
# Create test objects
User.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 query
q = User.objects.filter(properties__has="$.city=Giza")
print q[0].name
"Ahmed"
# Run Second query
q= User.objects.filter(properties__has="$.Address.Code=11351")
print q[0].name
"Mohamed"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jsonLookup-0.9.0.tar.gz
(3.0 kB
view details)
File details
Details for the file jsonLookup-0.9.0.tar.gz
.
File metadata
- Download URL: jsonLookup-0.9.0.tar.gz
- Upload date:
- Size: 3.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95bb1cd51e04e21c1b5a70ec5faa597b8435cb94da868fbbd5d1550fc7c88432 |
|
MD5 | ac3d1df00da31f10a236b5b8e8c8529e |
|
BLAKE2b-256 | eb384c23a9803fd4726d25e708f76a3d0164573d21d2ec5ccbd8ec8fcbec50e4 |