
Autogenerated Queries
Writing query documents can get out of control. Djongo does the heavy lifting of creating query documents for you.
More
Database Abstraction
Switch between MongoDB and other SQL databases. Limit the impact to your Models and business logic.
More
Security
Directly saving raw
JSON
into the database is scary. Djongo secures and validates the
JSON
document before saving.

Container Integration
Managed DBs, Storage, Kubernetes, Compute and Virtual Private Cloud (VPC) Integration
More
Rapid Prototyping
Speed up development with schema free models. Enforce protection with evolution.
MoreContainers
Deploy frustration free Djongo containers on Google Cloud Platform
Create and deploy a preset Ubuntu, Apache, MongoDB, PostgreSQL and Djongo instance on GCP. Choose between shared and dedicated VM instances.
Focus on developing the models.py and views.py. Let djongo cloud services automate the rest. Manage access keys, modify subscription plans, and request support using the dashboard.
Products
Djongo | DjongoCS | Enterprise | |
---|---|---|---|
Create Account | Enquire | ||
Django MongoDB Connector |
|
|
|
Virtualized Containers |
|
|
|
Commercial License |
|
|
|
Prototyping
Set enforce_schema to True in settings.py to enable schema checks at the database level.
Queries
self.db['entry'].aggregate(
[{
'$match': {
'author_id': {
'$ne': None,
'$exists': True
}
}
},
{
'$lookup': {
'from': 'author',
'localField': 'author_id',
'foreignField': 'id',
'as': 'author'
}
},
{
'$unwind': '$author'
},
{
'$lookup': {
'from': 'blog',
'localField': 'blog_id',
'foreignField': 'id',
'as': 'blog'
}
},
{
'$unwind': {
'path': '$blog',
'preserveNullAndEmptyArrays': True
}
},
{
'$addFields': {
'blog': {
'$ifNull': ['$blog', {
'id': None,
'title': None
}]
}
}
},
{
'$match': {
'author.name': {
'$eq': 'Paul'
}
}
},
{
'$project': {
'id': True,
'blog_id': True,
'author_id': True,
'content': True,
'blog.id': True,
'blog.title': True
}
}]
qs = Entry.objects.filter(author__name='Paul').select_related('blog')
Djongo generates complex, error free, aggregation queries automatically.
It takes the query on the top and automatically generates the pymongo query document as the output.
Security and Integrity Checks
def script_injection(value):
if value.find('<script>') != -1:
raise ValidationError(_('Script injection in %(value)s'),
params={'value': value})
class Entry(models.Model):
homepage = models.URLField(validators=[URLValidator,
script_injection])
Djongo performs checks on data fields before they are saved to the database.
Define custom validators or use builtin validators to check the data. Validation is triggered prior to writing to the database.
Running integrity checks and field value validators ensures protect from garbage data.
Djongo
Djongo is a unified approach to database interfacing. It is an extension to the
Django ORM
framework but maps python objects to MongoDB documents.
Constructing queries using Djongo is
much easier
compared to writing lengthy Pymongo query documents.
Storing raw
JSON
emitted by the frontend directly into the database is scary. Djongo ensures that
only clean data
gets through.
You no longer
need to use the shell to inspect your data. By using the
Admin
package, you can access and
modify data directly from the browser.
Djongo includes handy UI elements that help represent MongoDB documents on the browser.