4. Changelog

4.1. Changes in 0.9.X - DEV

  • Update FileField when creating a new file #714
  • Added EmbeddedDocumentListField for Lists of Embedded Documents. #826
  • ComplexDateTimeField should fall back to None when null=True #864
  • Request Support for $min, $max Field update operators #863
  • BaseDict does not follow setdefault #866
  • Add support for $type operator # 766
  • Fix tests for pymongo 2.8+ #877
  • No module named ‘django.utils.importlib’ (Django dev) #872
  • Field Choices Now Accept Subclasses of Documents
  • Ensure Indexes before Each Save #812
  • Generate Unique Indices for Lists of EmbeddedDocuments #358
  • Sparse fields #515
  • write_concern not in params of Collection#remove #801
  • Better BaseDocument equality check when not saved #798
  • OperationError: Shard Keys are immutable. Tried to update id even though the document is not yet saved #771
  • with_limit_and_skip for count should default like in pymongo #759
  • Fix storing value of precision attribute in DecimalField #787
  • Set attribute to None does not work (at least for fields with default values) #734
  • Querying by a field defined in a subclass raises InvalidQueryError #744
  • Add Support For MongoDB 2.6.X’s maxTimeMS #778
  • abstract shouldn’t be inherited in EmbeddedDocument # 789
  • Allow specifying the ‘_cls’ as a field for indexes #397
  • Stop ensure_indexes running on a secondaries unless connection is through mongos #746
  • Not overriding default values when loading a subset of fields #399
  • Saving document doesn’t create new fields in existing collection #620
  • Added Queryset.aggregate wrapper to aggregation framework #703
  • Added support to show original model fields on to_json calls instead of db_field #697
  • Added Queryset.search_text to Text indexes searchs #700
  • Fixed tests for Django 1.7 #696
  • Follow ReferenceFields in EmbeddedDocuments with select_related #690
  • Added preliminary support for text indexes #680
  • Added elemMatch operator as well - match is too obscure #653
  • Added support for progressive JPEG #486 #548
  • Allow strings to be used in index creation #675
  • Fixed EmbeddedDoc weakref proxy issue #592
  • Fixed nested reference field distinct error #583
  • Fixed change tracking on nested MapFields #539
  • Dynamic fields in embedded documents now visible to queryset.only() / qs.exclude() #425 #507
  • Add authentication_source option to register_connection #178 #464 #573 #580 #590
  • Implemented equality between Documents and DBRefs #597
  • Fixed ReferenceField inside nested ListFields dereferencing problem #368
  • Added the ability to reload specific document fields #100
  • Added db_alias support and fixes for custom map/reduce output #586
  • post_save signal now has access to delta information about field changes #594 #589
  • Don’t query with $orderby for qs.get() #600
  • Fix id shard key save issue #636
  • Fixes issue with recursive embedded document errors #557
  • Fix clear_changed_fields() clearing unsaved documents bug #602
  • Removing support for Django 1.4.x, pymongo 2.5.x, pymongo 2.6.x.
  • Removing support for Python < 2.6.6
  • Fixed $maxDistance location for geoJSON $near queries with MongoDB 2.6+ #664
  • QuerySet.modify() and Document.modify() methods to provide find_and_modify() like behaviour #677 #773
  • Added support for the using() method on a queryset #676
  • PYPY support #673
  • Connection pooling #674
  • Avoid to open all documents from cursors in an if stmt #655
  • Ability to clear the ordering #657
  • Raise NotUniqueError in Document.update() on pymongo.errors.DuplicateKeyError #626
  • Slots - memory improvements #625
  • Fixed incorrectly split a query key when it ends with “_” #619
  • Geo docs updates #613
  • Workaround a dateutil bug #608
  • Conditional save for atomic-style operations #511
  • Allow dynamic dictionary-style field access #559
  • Increase email field length to accommodate new TLDs #726
  • index_cls is ignored when deciding to set _cls as index prefix #733
  • Make ‘db’ argument to connection optional #737
  • Allow atomic update for the entire DictField #742
  • Added MultiPointField, MultiLineField, MultiPolygonField
  • Fix multiple connections aliases being rewritten #748
  • Fixed a few instances where reverse_delete_rule was written as reverse_delete_rules. #791
  • Make in_bulk() respect no_dereference() #775
  • Handle None from model __str__; Fixes #753 #754

4.2. Changes in 0.8.7

  • Calling reload on deleted / nonexistent documents raises DoesNotExist (#538)
  • Stop ensure_indexes running on a secondaries (#555)
  • Fix circular import issue with django auth (#531) (#545)

4.3. Changes in 0.8.6

  • Fix django auth import (#531)

4.4. Changes in 0.8.5

  • Fix multi level nested fields getting marked as changed (#523)
  • Django 1.6 login fix (#522) (#527)
  • Django 1.6 session fix (#509)
  • EmbeddedDocument._instance is now set when setting the attribute (#506)
  • Fixed EmbeddedDocument with ReferenceField equality issue (#502)
  • Fixed GenericReferenceField serialization order (#499)
  • Fixed count and none bug (#498)
  • Fixed bug with .only() and DictField with digit keys (#496)
  • Added user_permissions to Django User object (#491, #492)
  • Fix updating Geo Location fields (#488)
  • Fix handling invalid dict field value (#485)
  • Added app_label to MongoUser (#484)
  • Use defaults when host and port are passed as None (#483)
  • Fixed distinct casting issue with ListField of EmbeddedDocuments (#470)
  • Fixed Django 1.6 sessions (#454, #480)

4.5. Changes in 0.8.4

  • Remove database name necessity in uri connection schema (#452)
  • Fixed “$pull” semantics for nested ListFields (#447)
  • Allow fields to be named the same as query operators (#445)
  • Updated field filter logic - can now exclude subclass fields (#443)
  • Fixed dereference issue with embedded listfield referencefields (#439)
  • Fixed slice when using inheritance causing fields to be excluded (#437)
  • Fixed ._get_db() attribute after a Document.switch_db() (#441)
  • Dynamic Fields store and recompose Embedded Documents / Documents correctly (#449)
  • Handle dynamic fieldnames that look like digits (#434)
  • Added get_user_document and improve mongo_auth module (#423)
  • Added str representation of GridFSProxy (#424)
  • Update transform to handle docs erroneously passed to unset (#416)
  • Fixed indexing - turn off _cls (#414)
  • Fixed dereference threading issue in ComplexField.__get__ (#412)
  • Fixed QuerySetNoCache.count() caching (#410)
  • Don’t follow references in _get_changed_fields (#422, #417)
  • Allow args and kwargs to be passed through to_json (#420)

4.6. Changes in 0.8.3

  • Fixed EmbeddedDocuments with id also storing _id (#402)

  • Added get_proxy_object helper to filefields (#391)

  • Added QuerySetNoCache and QuerySet.no_cache() for lower memory consumption (#365)

  • Fixed sum and average mapreduce dot notation support (#375, #376, #393)

  • Fixed as_pymongo to return the id (#386)

  • Document.select_related() now respects db_alias (#377)

  • Reload uses shard_key if applicable (#384)

  • Dynamic fields are ordered based on creation and stored in _fields_ordered (#396)

    Potential breaking change: http://docs.mongoengine.org/en/latest/upgrade.html#to-0-8-3

  • Fixed pickling dynamic documents _dynamic_fields (#387)

  • Fixed ListField setslice and delslice dirty tracking (#390)

  • Added Django 1.5 PY3 support (#392)

  • Added match ($elemMatch) support for EmbeddedDocuments (#379)

  • Fixed weakref being valid after reload (#374)

  • Fixed queryset.get() respecting no_dereference (#373)

  • Added full_result kwarg to update (#380)

4.7. Changes in 0.8.2

  • Added compare_indexes helper (#361)
  • Fixed cascading saves which weren’t turned off as planned (#291)
  • Fixed Datastructures so instances are a Document or EmbeddedDocument (#363)
  • Improved cascading saves write performance (#361)
  • Fixed ambiguity and differing behaviour regarding field defaults (#349)
  • ImageFields now include PIL error messages if invalid error (#353)
  • Added lock when calling doc.Delete() for when signals have no sender (#350)
  • Reload forces read preference to be PRIMARY (#355)
  • Querysets are now lest restrictive when querying duplicate fields (#332, #333)
  • FileField now honouring db_alias (#341)
  • Removed customised __set__ change tracking in ComplexBaseField (#344)
  • Removed unused var in _get_changed_fields (#347)
  • Added pre_save_post_validation signal (#345)
  • DateTimeField now auto converts valid datetime isostrings into dates (#343)
  • DateTimeField now uses dateutil for parsing if available (#343)
  • Fixed Doc.objects(read_preference=X) not setting read preference (#352)
  • Django session ttl index expiry fixed (#329)
  • Fixed pickle.loads (#342)
  • Documentation fixes

4.8. Changes in 0.8.1

  • Fixed Python 2.6 django auth importlib issue (#326)
  • Fixed pickle unsaved document regression (#327)

4.9. Changes in 0.8.0

  • Fixed querying ReferenceField custom_id (#317)
  • Fixed pickle issues with collections (#316)
  • Added get_next_value preview for SequenceFields (#319)
  • Added no_sub_classes context manager and queryset helper (#312)
  • Querysets now utilises a local cache
  • Changed __len__ behaviour in the queryset (#247, #311)
  • Fixed querying string versions of ObjectIds issue with ReferenceField (#307)
  • Added $setOnInsert support for upserts (#308)
  • Upserts now possible with just query parameters (#309)
  • Upserting is the only way to ensure docs are saved correctly (#306)
  • Fixed register_delete_rule inheritance issue
  • Fix cloning of sliced querysets (#303)
  • Fixed update_one write concern (#302)
  • Updated minimum requirement for pymongo to 2.5
  • Add support for new geojson fields, indexes and queries (#299)
  • If values cant be compared mark as changed (#287)
  • Ensure as_pymongo() and to_json honour only() and exclude() (#293)
  • Document serialization uses field order to ensure a strict order is set (#296)
  • DecimalField now stores as float not string (#289)
  • UUIDField now stores as a binary by default (#292)
  • Added Custom User Model for Django 1.5 (#285)
  • Cascading saves now default to off (#291)
  • ReferenceField now store ObjectId’s by default rather than DBRef (#290)
  • Added ImageField support for inline replacements (#86)
  • Added SequenceField.set_next_value(value) helper (#159)
  • Updated .only() behaviour - now like exclude it is chainable (#202)
  • Added with_limit_and_skip support to count() (#235)
  • Objects queryset manager now inherited (#256)
  • Updated connection to use MongoClient (#262, #274)
  • Fixed db_alias and inherited Documents (#143)
  • Documentation update for document errors (#124)
  • Deprecated get_or_create (#35)
  • Updated inheritable objects created by upsert now contain _cls (#118)
  • Added support for creating documents with embedded documents in a single operation (#6)
  • Added to_json and from_json to Document (#1)
  • Added to_json and from_json to QuerySet (#131)
  • Updated index creation now tied to Document class (#102)
  • Added none() to queryset (#127)
  • Updated SequenceFields to allow post processing of the calculated counter value (#141)
  • Added clean method to documents for pre validation data cleaning (#60)
  • Added support setting for read prefrence at a query level (#157)
  • Added _instance to EmbeddedDocuments pointing to the parent (#139)
  • Inheritance is off by default (#122)
  • Remove _types and just use _cls for inheritance (#148)
  • Only allow QNode instances to be passed as query objects (#199)
  • Dynamic fields are now validated on save (#153) (#154)
  • Added support for multiple slices and made slicing chainable. (#170) (#190) (#191)
  • Fixed GridFSProxy __getattr__ behaviour (#196)
  • Fix Django timezone support (#151)
  • Simplified Q objects, removed QueryTreeTransformerVisitor (#98) (#171)
  • FileFields now copyable (#198)
  • Querysets now return clones and are no longer edit in place (#56)
  • Added support for $maxDistance (#179)
  • Uses getlasterror to test created on updated saves (#163)
  • Fixed inheritance and unique index creation (#140)
  • Fixed reverse delete rule with inheritance (#197)
  • Fixed validation for GenericReferences which haven’t been dereferenced
  • Added switch_db context manager (#106)
  • Added switch_db method to document instances (#106)
  • Added no_dereference context manager (#82) (#61)
  • Added switch_collection context manager (#220)
  • Added switch_collection method to document instances (#220)
  • Added support for compound primary keys (#149) (#121)
  • Fixed overriding objects with custom manager (#58)
  • Added no_dereference method for querysets (#82) (#61)
  • Undefined data should not override instance methods (#49)
  • Added Django Group and Permission (#142)
  • Added Doc class and pk to Validation messages (#69)
  • Fixed Documents deleted via a queryset don’t call any signals (#105)
  • Added the “get_decoded” method to the MongoSession class (#216)
  • Fixed invalid choices error bubbling (#214)
  • Updated Save so it calls $set and $unset in a single operation (#211)
  • Fixed inner queryset looping (#204)

4.10. Changes in 0.7.10

  • Fix UnicodeEncodeError for dbref (#278)
  • Allow construction using positional parameters (#268)
  • Updated EmailField length to support long domains (#243)
  • Added 64-bit integer support (#251)
  • Added Django sessions TTL support (#224)
  • Fixed issue with numerical keys in MapField(EmbeddedDocumentField()) (#240)
  • Fixed clearing _changed_fields for complex nested embedded documents (#237, #239, #242)
  • Added “id” back to _data dictionary (#255)
  • Only mark a field as changed if the value has changed (#258)
  • Explicitly check for Document instances when dereferencing (#261)
  • Fixed order_by chaining issue (#265)
  • Added dereference support for tuples (#250)
  • Resolve field name to db field name when using distinct(#260, #264, #269)
  • Added kwargs to doc.save to help interop with django (#223, #270)
  • Fixed cloning querysets in PY3
  • Int fields no longer unset in save when changed to 0 (#272)
  • Fixed ReferenceField query chaining bug fixed (#254)

4.11. Changes in 0.7.9

  • Better fix handling for old style _types
  • Embedded SequenceFields follow collection naming convention

4.12. Changes in 0.7.8

  • Fix sequence fields in embedded documents (#166)
  • Fix query chaining with .order_by() (#176)
  • Added optional encoding and collection config for Django sessions (#180, #181, #183)
  • Fixed EmailField so can add extra validation (#173, #174, #187)
  • Fixed bulk inserts can now handle custom pk’s (#192)
  • Added as_pymongo method to return raw or cast results from pymongo (#193)

4.13. Changes in 0.7.7

  • Fix handling for old style _types

4.14. Changes in 0.7.6

  • Unicode fix for repr (#133)
  • Allow updates with match operators (#144)
  • Updated URLField - now can have a override the regex (#136)
  • Allow Django AuthenticationBackends to work with Django user (hmarr/mongoengine#573)
  • Fixed reload issue with ReferenceField where dbref=False (#138)

4.15. Changes in 0.7.5

  • ReferenceFields with dbref=False use ObjectId instead of strings (#134) See ticket for upgrade notes (#134)

4.16. Changes in 0.7.4

  • Fixed index inheritance issues - firmed up testcases (#123) (#125)

4.17. Changes in 0.7.3

  • Reverted EmbeddedDocuments meta handling - now can turn off inheritance (#119)

4.18. Changes in 0.7.2

  • Update index spec generation so its not destructive (#113)

4.19. Changes in 0.7.1

  • Fixed index spec inheritance (#111)

4.20. Changes in 0.7.0

  • Updated queryset.delete so you can use with skip / limit (#107)
  • Updated index creation allows kwargs to be passed through refs (#104)
  • Fixed Q object merge edge case (#109)
  • Fixed reloading on sharded documents (hmarr/mongoengine#569)
  • Added NotUniqueError for duplicate keys (#62)
  • Added custom collection / sequence naming for SequenceFields (#92)
  • Fixed UnboundLocalError in composite index with pk field (#88)
  • Updated ReferenceField’s to optionally store ObjectId strings this will become the default in 0.8 (#89)
  • Added FutureWarning - save will default to cascade=False in 0.8
  • Added example of indexing embedded document fields (#75)
  • Fixed ImageField resizing when forcing size (#80)
  • Add flexibility for fields handling bad data (#78)
  • Embedded Documents no longer handle meta definitions
  • Use weakref proxies in base lists / dicts (#74)
  • Improved queryset filtering (hmarr/mongoengine#554)
  • Fixed Dynamic Documents and Embedded Documents (hmarr/mongoengine#561)
  • Fixed abstract classes and shard keys (#64)
  • Fixed Python 2.5 support
  • Added Python 3 support (thanks to Laine Heron)

4.21. Changes in 0.6.20

  • 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)

4.22. Changes in 0.6.19

  • 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)

4.23. Changes in 0.6.18

  • Fixed recursion loading bug in _get_changed_fields

4.24. Changes in 0.6.17

  • Fixed issue with custom queryset manager expecting explict variable names

4.25. Changes in 0.6.16

  • Fixed issue where db_alias wasn’t inherited

4.26. Changes in 0.6.15

  • 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

4.27. Changes in 0.6.14

  • Fixed error dict with nested validation
  • Fixed Int/Float fields and not equals None
  • Exclude tests from installation
  • Allow tuples for index meta
  • Fixed use of str in instance checks
  • Fixed unicode support in transform update
  • Added support for add_to_set and each

4.28. Changes in 0.6.13

  • Fixed EmbeddedDocument db_field validation issue
  • Fixed StringField unicode issue
  • Fixes __repr__ modifying the cursor

4.29. Changes in 0.6.12

  • Fixes scalar lookups for primary_key
  • Fixes error with _delta handling DBRefs

4.30. Changes in 0.6.11

  • Fixed inconsistency handling None values field attrs
  • Fixed map_field embedded db_field issue
  • Fixed .save() _delta issue with DbRefs
  • Fixed Django TestCase
  • Added cmp to Embedded Document
  • Added PULL reverse_delete_rule
  • Fixed CASCADE delete bug
  • Fixed db_field data load error
  • Fixed recursive save with FileField

4.31. Changes in 0.6.10

  • Fixed basedict / baselist to return super(..)
  • Promoted BaseDynamicField to DynamicField

4.32. Changes in 0.6.9

  • Fixed sparse indexes on inherited docs
  • Removed FileField auto deletion, needs more work maybe 0.7

4.33. Changes in 0.6.8

  • 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

4.34. Changes in 0.6.7

  • 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

4.35. Changes in 0.6.6

  • Django 1.4 fixed (finally)
  • Added tests for Django

4.36. Changes in 0.6.5

  • More Django updates

4.37. Changes in 0.6.4

  • 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

4.38. Changes in 0.6.3

  • Updated sessions for Django 1.4
  • Bug fix for updates where listfields contain embedded documents
  • Bug fix for collection naming and mixins

4.39. Changes in 0.6.2

  • Updated documentation for ReplicaSet connections
  • Hack round _types issue with SERVER-5247 - querying other arrays may also cause problems.

4.40. Changes in 0.6.1

  • Fix for replicaSet connections

4.41. Changes in 0.6

  • Added FutureWarning to inherited classes not declaring ‘allow_inheritance’ as the default will change in 0.7
  • Added support for covered indexes when inheritance is off
  • No longer always upsert on save for items with a ‘_id’
  • Error raised if update doesn’t have an operation
  • DeReferencing is now thread safe
  • Errors raised if trying to perform a join in a query
  • Updates can now take __raw__ queries
  • Added custom 2D index declarations
  • Added replicaSet connection support
  • Updated deprecated imports from pymongo (safe for pymongo 2.2)
  • Added uri support for connections
  • Added scalar for efficiently returning partial data values (aliased to values_list)
  • Fixed limit skip bug
  • Improved Inheritance / Mixin
  • Added sharding support
  • Added pymongo 2.1 support
  • Fixed Abstract documents can now declare indexes
  • Added db_alias support to individual documents
  • Fixed GridFS documents can now be pickled
  • Added Now raises an InvalidDocumentError when declaring multiple fields with the same db_field
  • Added InvalidQueryError when calling with_id with a filter
  • Added support for DBRefs in distinct()
  • Fixed issue saving False booleans
  • Fixed issue with dynamic documents deltas
  • Added Reverse Delete Rule support to ListFields - MapFields aren’t supported
  • Added customisable cascade kwarg options
  • Fixed Handle None values for non-required fields
  • Removed Document._get_subclasses() - no longer required
  • Fixed bug requiring subclasses when not actually needed
  • Fixed deletion of dynamic data
  • Added support for the $elementMatch operator
  • Added reverse option to SortedListFields
  • Fixed dereferencing - multi directional list dereferencing
  • Fixed issue creating indexes with recursive embedded documents
  • Fixed recursive lookup in _unique_with_indexes
  • Fixed passing ComplexField defaults to constructor for ReferenceFields
  • Fixed validation of DictField Int keys
  • Added optional cascade saving
  • Fixed dereferencing - max_depth now taken into account
  • Fixed document mutation saving issue
  • Fixed positional operator when replacing embedded documents
  • Added Non-Django Style choices back (you can have either)
  • Fixed __repr__ of a sliced queryset
  • Added recursive validation error of documents / complex fields
  • Fixed breaking during queryset iteration
  • Added pre and post bulk-insert signals
  • Added ImageField - requires PIL
  • Fixed Reference Fields can be None in get_or_create / queries
  • Fixed accessing pk on an embedded document
  • Fixed calling a queryset after drop_collection now recreates the collection
  • Add field name to validation exception messages
  • Added UUID field
  • Improved efficiency of .get()
  • Updated ComplexFields so if required they won’t accept empty lists / dicts
  • Added spec file for rpm-based distributions
  • Fixed ListField so it doesnt accept strings
  • Added DynamicDocument and EmbeddedDynamicDocument classes for expando schemas

4.42. Changes in v0.5.2

  • A Robust Circular reference bugfix

4.43. Changes in v0.5.1

  • Fixed simple circular reference bug

4.44. Changes in v0.5

  • 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

4.45. Changes in v0.4

  • 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

4.46. Changes in v0.3

  • Added MapReduce support
  • Added contains, startswith and endswith query operators (and case-insensitive versions that are prefixed with ‘i’)
  • Deprecated fields’ name parameter, replaced with db_field
  • Added QuerySet.only for only retrieving specific fields
  • Added QuerySet.in_bulk() for bulk querying using ids
  • QuerySets now have a rewind() method, which is called automatically when the iterator is exhausted, allowing QuerySets to be reused
  • Added DictField
  • Added URLField
  • Added DecimalField
  • Added BinaryField
  • Added GenericReferenceField
  • Added get() and get_or_create() methods to QuerySet
  • ReferenceFields may now reference the document they are defined on (recursive references) and documents that have not yet been defined
  • Document objects may now be compared for equality (equal if _ids are equal and documents are of same type)
  • QuerySet update methods now have an upsert parameter
  • Added field name substitution for Javascript code (allows the user to use the Python names for fields in JS, which are later substituted for the real field names)
  • Q objects now support regex querying
  • Fixed bug where referenced documents within lists weren’t properly dereferenced
  • ReferenceFields may now be queried using their _id
  • Fixed bug where EmbeddedDocuments couldn’t be non-polymorphic
  • queryset_manager functions now accept two arguments – the document class as the first and the queryset as the second
  • Fixed bug where QuerySet.exec_js ignored Q objects
  • Other minor fixes

4.47. Changes in v0.2.2

  • Fixed bug that prevented indexes from being used on ListFields
  • Document.filter() added as an alias to Document.__call__()
  • validate() may now be used on EmbeddedDocuments

4.48. Changes in v0.2.1

  • Added a MongoEngine backend for Django sessions
  • Added force_insert to Document.save()
  • Improved querying syntax for ListField and EmbeddedDocumentField
  • Added support for user-defined primary keys (_id in MongoDB)

4.49. Changes in v0.2

  • Added Q class for building advanced queries
  • Added QuerySet methods for atomic updates to documents
  • Fields may now specify unique=True to enforce uniqueness across a collection
  • Added option for default document ordering
  • Fixed bug in index definitions

4.50. Changes in v0.1.3

  • Added Django authentication backend
  • Added Document.meta support for indexes, which are ensured just before querying takes place
  • A few minor bugfixes

4.51. Changes in v0.1.2

  • Query values may be processed before before being used in queries
  • Made connections lazy
  • Fixed bug in Document dictionary-style access
  • Added BooleanField
  • Added Document.reload() method

4.52. Changes in v0.1.1

  • Documents may now use capped collections
Read the Docs v: v0.9.0
Versions
latest
stable
v0.9.0
v0.8.8
v0.8.7
v0.8.6
v0.8.5
v0.8.1
v0.8.0
v0.7.10
v0.7.4
v0.7.3
v0.7.2
v0.7.1
0.7
v0.7rc1
Downloads
pdf
htmlzip
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.