NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3170 most downloaded on PyPI
MongoEngine is a Python Object-Document Mapper for working with MongoDB.
Last release 6 months ago
10 Mar 2026
Release timing varies
gaps range from 3 weeks to 1.5 years
Nearly every release is documented
notes for 57 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
78 releases · first in 2013
Added support for distinct and db_alias
Added support for distinct and db_alias (#59)
Improved support for chained querysets when constraining the same fields (hmarr/mongoengine#554)
Fixed BinaryField lookup re (#48)
Fixed MapField lookup for fields without declared lookups
Added Binary support to UUID (#47)
Fixed MapField lookup for fields without declared lookups (#46)
Fixed BinaryField python value issue (#48)
Fixed SequenceField non numeric value lookup (#41)
Fixed queryset manager issue (#52)
Fixed FileField comparision (hmarr/mongoengine#547)
One column per quarter.
Fixed issue with custom queryset manager expecting explict variable names
Fixed issue with custom queryset manager expecting explict variable names
Fixed issue where db_alias wasn't inherited
Fixed issue where db_alias wasn't inherited
Updated validation error messages
Updated validation error messages
Added support for null / zero / false values in item_frequencies
Fixed cascade save edge case
Fixed geo index creation through reference fields
Added support for args / kwargs when using @queryset_manager
Deref list custom id fix
Fixed EmbeddedDocument db_field validation issue
Fixed EmbeddedDocument db_field validation issue
Fixed StringField unicode issue
Fixes __repr__ modifying the cursor
Fixes scalar lookups for primary_key
Fixes scalar lookups for primary_key
Fixes error with _delta handling DBRefs
Fixed basedict / baselist to return super(..)
Fixed basedict / baselist to return super(..)
Promoted BaseDynamicField to DynamicField
Fixed FileField losing reference when no default set
Fixed FileField losing reference when no default set
Removed possible race condition from FileField (grid_file)
Added assignment to save, can now do: b = MyDoc(**kwargs).save()
Added support for pull operations on nested EmbeddedDocuments
Added support for choices with GenericReferenceFields
Added support for choices with GenericEmbeddedDocumentFields
Fixed Django 1.4 sessions first save data loss
FileField now automatically delete files on .delete()
Fix for GenericReference to_mongo method
Fixed connection regression
Updated Django User document, now allows inheritance
Fixed indexing on '_id' or 'pk' or 'id'
Fixed indexing on '_id' or 'pk' or 'id'
Invalid data from the DB now raises a InvalidDocumentError
Cleaned up the Validation Error - docs and code
Added meta auto_create_index so you can disable index creation
Added write concern options to inserts
Fixed typo in meta for index options
Bug fix Read preference now passed correctly
Added support for File like objects for GridFS
Fix for #473 - Dereferencing abstracts
- Django 1.4 fixed (finally) - Added tests for Django
Django 1.4 fixed (finally)
Added tests for Django
Refactored connection / fixed replicasetconnection
Refactored connection / fixed replicasetconnection
Bug fix for unknown connection alias error message
Sessions support Django 1.3 and Django 1.4
Minor fix for ReferenceField
Updated sessions for Django 1.4
Updated sessions for Django 1.4
Bug fix for updates where listfields contain embedded documents
Bug fix for collection naming and mixins
- Fix for replicaSet connections
Fix for replicaSet connections
A Robust Circular reference bugfix
A Robust Circular reference bugfix
Fixed simple circular reference bug
Fixed simple circular reference bug
Added InvalidDocumentError - so Document core methods can't be overwritten
Added InvalidDocumentError - so Document core methods can't be overwritten
Added GenericEmbeddedDocument - so you can embed any type of embeddable document
Added within_polygon support - for those with mongodb 1.9
Updated sum / average to use map_reduce as db.eval doesn't work in sharded environments
Added where() - filter to allowing users to specify query expressions as Javascript
Added SequenceField - for creating sequential counters
Added update() convenience method to a document
Added cascading saves - so changes to Referenced documents are saved on .save()
Added select_related() support
Added support for the positional operator
Updated geo index checking to be recursive and check in embedded documents
Updated default collection naming convention
Added Document Mixin support
Fixed queryet __repr__ mid iteration
Added hint() support, so can tell Mongo the proper index to use for the query
Fixed issue with inconsistent setting of _cls breaking inherited referencing
Added help_text and verbose_name to fields to help with some form libs
Updated item_frequencies to handle embedded document lookups
Added delta tracking now only sets / unsets explicitly changed fields
Fixed saving so sets updated values rather than overwrites
Added ComplexDateTimeField - Handles datetimes correctly with microseconds
Added ComplexBaseField - for improved flexibility and performance
Added get_FIELD_display() method for easy choice field displaying
Added queryset.slave_okay(enabled) method
Updated queryset.timeout(enabled) and queryset.snapshot(enabled) to be chainable
Added insert method for bulk inserts
Added blinker signal support
Added query_counter context manager for tests
Added map_reduce method item_frequencies and set as default (as db.eval doesn't work in sharded environments)
Added inline_map_reduce option to map_reduce
Updated connection exception so it provides more info on the cause.
Added searching multiple levels deep in DictField
Added DictField entries containing strings to use matching operators
Added MapField, similar to DictField
Added Abstract Base Classes
Added Custom Objects Managers
Added sliced subfields updating
Added NotRegistered exception if dereferencing Document not in the registry
Added a write concern for save, update, update_one and get_or_create
Added slicing / subarray fetching controls
Fixed various unique index and other index issues
Fixed threaded connection issues
Added spherical geospatial query operators
Updated queryset to handle latest version of pymongo map_reduce now requires an output.
Added Document __hash__, __ne__ for pickling
Added FileField optional size arg for read method
Fixed FileField seek and tell methods for reading files
Added QuerySet.clone to support copying querysets
Fixed item_frequencies when using name thats the same as a native js function
Added reverse delete rules
Fixed issue with unset operation
Fixed Q-object bug
Added QuerySet.all_fields resets previous .only() and .exclude()
Added QuerySet.exclude
Added django style choices
Fixed order and filter issue
Added QuerySet.only subfield support
Added creation_counter to BaseField allowing fields to be sorted in the way the user has specified them
Fixed various errors
Added many tests
Added GridFSStorage Django storage backend
Added GridFSStorage Django storage backend
Added FileField for GridFS support
New Q-object implementation, which is no longer based on Javascript
Added SortedListField
Added EmailField
Added GeoPointField
Added exact and iexact match operators to QuerySet
Added get_document_or_404 and get_list_or_404 Django shortcuts
Added new query operators for Geo queries
Added not query operator
Added new update operators: pop and add_to_set
Added __raw__ query parameter
Added support for custom querysets
Fixed document inheritance primary key issue
Added support for querying by array element position
Base class can now be defined for DictField
Fixed MRO error that occured on document inheritance
Added QuerySet.distinct, QuerySet.create, QuerySet.snapshot, QuerySet.timeout and QuerySet.all
Subsequent calls to connect() now work
Introduced min_length for StringField
Fixed multi-process connection issue
Other minor fixes
Your coding agent can read these notes before it upgrades. Set up the MCP server →