Skip to main content

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


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)

Uploaded Source

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

Hashes for jsonLookup-0.9.0.tar.gz
Algorithm Hash digest
SHA256 95bb1cd51e04e21c1b5a70ec5faa597b8435cb94da868fbbd5d1550fc7c88432
MD5 ac3d1df00da31f10a236b5b8e8c8529e
BLAKE2b-256 eb384c23a9803fd4726d25e708f76a3d0164573d21d2ec5ccbd8ec8fcbec50e4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page