Features under development in this section come preinstalled on DjongoCS. Visit the support page for more information.

Schema Validation and CheckConstraint

Djongo automatically generates schema validation JSON documents for your models providing an extra layer of data validation and checking from within MongoDB. By creating check constraints in the Model Meta definition, djongo automatically interprets it to generate a JSON Schema and a query expression

Example

from djongo.models import CheckConstraint, Q
from djongo import models
from pymongo.read_concern import ReadConcern

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()
    author_age = models.IntegerField()

    class Meta:
        constraints = [
             CheckConstraint(check=Q(author_age__gte=18), name='age_gte_18')
        ]

CollectionConstraint and Capped Collections

Djongo introduces a new CollectionConstraint. Use this to specify MongoDB specific collection properties that are usually used when calling create_collection

class CollectionConstraint(**kwargs)

All arguments passed to create_collection with the exception of name can be used to create the CollectionConstraint instance. Valid arguments include, but are not limited to those described below

Arguments

Argument Type Description
codec_options CodecOptions An instance of CodecOptions.
collation Collation Takes an instance of Collation

Example

from djongo.models import CollectionConstraint
from djongo import models
from pymongo.read_concern import ReadConcern

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    class Meta:
        constraints = [
            CollectionConstraint(
                read_concern=ReadConcern(level='majority'),
                capped=True,
                max=100
            )
        ]