Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Releases: mongomock/mongomock

4.3.0

19 Nov 00:00
4.3.0
308b627

Choose a tag to compare

What's Changed

  • Fix collection.find_one(...) sorting using dicts by @santiagopardal in #897
  • Remove usage of legacy syntax constructs by @mdomke in #899
  • Adapt code to refactored Mongo driver GridFS implementation by @mdomke in #905
  • Adding support for aggregation pipelines in updates by @maximkir-fl in #906

New Contributors

Full Changelog: 4.2.0...4.3.0

4.2.0

11 Sep 15:31
4.2.0-post.1
4c81205

Choose a tag to compare

What's Changed

  • Added support for $ifNull multi field support, $isNumber, $isArray by @David-Taub in #749
  • Add read_concern kwarg to get_database. by @pcorpet in #790
  • Add support for $isNumber and $isArray (added on v4.4). by @pcorpet in #789
  • Support date timezone by @kepricon in #791
  • Adding support for $dateFromParts aggregation command by @maximkir-fl in #796
  • Improve field validation for documents by @plaan in #769
  • Use importlib.metadata.version instead of deprecated pkg_resources call by @ml-evs in #834
  • Modernize project infrastructure by @mdomke in #876
    • Switch to hatch as build system.
    • Switch to PEP 621 compliant project setup.
    • Updated the license to ISC.
    • The setuptools specific files e.g. setup.cfg and setup.py have
      been removed in the scope of the switch to hatch.
    • Remove support for deprecated Python versions (everything prior to 3.8)
    • Switch to GitHub Actions as CI/CD solution

What happened to the 4.1.3 release

The previous CI/CD solution (Travis CI) was refusing to run the publish pipelines due to usage quota issues.

New Contributors

Full Changelog: 4.1.2...4.2.0-post.1

4.1.2

07 Jul 09:52

Choose a tag to compare

Full support (CI) of Python 3.10 and MongoDB v5.

  • Add support for partialFilterExpression to create_index (#784)
  • Handle $ in update operations when it is the last field. (#787)
  • Drop system collections on drop_database calls. (#788)
  • Add support for "number" alias in $type (#757)
  • Allow system vars expressions to generate arrays (#619)
  • Handle $arrayElementAt applied to $filter
  • $pushall $addToSet dollar operand support (#786)
  • Fix handling non existent fields and other errors in arithmetic operators and grouping. (#502)
  • Add support for allow_disk_use (#780)
  • Use class instead of function in patch (#768)
  • Make reading documents more thread safe. #694 (#695)
  • Patch gridfs without using isinstance. (#761)
  • Fix behavior for $type filter on arrays (#756)
  • Fix behavior for $type filter on numeric types (#755)
  • Make find(projection=...) return copies of the values (#753)
  • Add $not as a logic operator (#716)
  • Implement $map operator (#738)
  • Fix aggregation failing if index does not exists, added test (#646)
  • Sublist candidate handling update (#676)
  • Make distinct() work with arrays of dicts (#751)
  • Add let and array_filters args for update_ methods
  • Create the list_collections method on Database
  • Keep a client's server info consistent
  • Get the server info from an env var
  • Keep the server_info value in sync with the CI

4.0.0

31 Jan 07:16

Choose a tag to compare

This release mainly brings support for pymongo v4. It is still compatible with pymongo v3 and despite the major version, in most cases it should be an easy upgrade.

Breaking Changes

  • Drop support for Python 2
  • If no pymongo is installed at runtime, uses pymongo v4 interface

3.23.0

06 Jun 20:07
03661bd

Choose a tag to compare

  • Add default and options to get_default_database() (#693)
  • Bump the version of hacking, setting our flake8 config
  • Support read_concern in database.get_collection() (#708)
  • Support $toLong operator (#705)
  • Fix for {$size: 1} queries on non-existent fields (#711)
  • Parse `index` of $arrayElemAt. Fix #607 (#701)
  • Implement the $let operator. (#698)
  • Implement the $expr operator. (#538)
  • Fix some bad indenting
  • Fail properly on computing the $size of a missing array. (#697)
  • Fix SyntaxWarning about using "is not" with literals
  • Add support for mergeObjects operator (#689)
  • fix: use group operators in addFields (#690)

3.22.1

14 Jan 09:00

Choose a tag to compare

  • Fix type stubs for patch and test it to prevent regressions
  • Fix missing fields management in the graphLookup stage
  • Allow dot'ted field in connectFrom of $graphLookup aggregation pipeline (#686)

3.22.0

30 Dec 08:44

Choose a tag to compare

  • Mark $convert and $toLong operators as not implemented yet
  • Handle negative limit values for cursor
  • Add filter kwarg to list_collection_names (#681)
  • Align equality and hashable capacity on Pymongo's object
  • Really run tests for Python 3.9
  • Add typing stubs
  • Add the collation property to Cursor
  • Add Python 3.9 to the test matrix
  • Accept collation kwarg in update_one and update_many
  • Performance improvement: create only one instance of _Filterer (#674)
  • Implement '$concatArrays' aggregation pipeline operator (#672)

3.21.0

30 Dec 08:44

Choose a tag to compare

  • Return the right document for find_one_and_replace using ReturnDocument.AFTER and upsert
  • Implement basic codec_options (#670)
  • Add $trim and $dateFromSTring to the unimplemented operators
  • Stop using obsolete methods in unit tests as much as possible
  • Implement boolean operators (#663)
  • Implement TTL Indexes (#660)
  • Fix pylint after v2.6.0 release
  • Introduce Docker to ease local development (#659)
  • Implement the $regexMatch operator. (#658)
  • Implement the $split operator (#661)
  • Upgrade to MongoDB v4.4
  • Create a framework to silence some NotImplementedError. (#656)
  • Raise an error when trying to create the same index with different options
  • Raise a TypeError when creating an index with a wrong param
  • Fix $elemMatch querying on values directly
  • Fix $pull update operation when using $in for a nested field
  • Accept snapshot or other keyword arguments for find, although raise an OperationFailure if it's not falsy
  • Mark the start_session method of MongoClient as not implemented
  • Fix tz awareness for count_documents and $match in aggregate
  • Fix a test that was assuming to be run on UTC clock. (#652)

3.20.0

01 Aug 14:05
9d5562e

Choose a tag to compare

  • Handling truthy and falsy values the way MongoDB does it (#651)
  • Add support for group by DBRefs (#636)
  • Implement $switch operator (#645)
  • Add hint optional argument to bulk operations (compatibility with pymongo v3.11+)
  • Mark new $regexMatch operator as not implemented
  • Drop the test database rather than the test collection (#601)
  • Implement $pop (#602)
  • A little fix in the example (#644)
  • Mark $mergeObjects as valid but not implemented
  • DOC: Clarify how to use mongomock.patch with pymongo (#640)
  • Add many operators from 3.4 release as NotImplemented
  • Raise a WriteError when trying to update with an empty $set. (#623)
  • Add context mananger methods to mongomock client (#633)
  • Implement $arrayToObject operator (#624)
  • Add support for read concern (#628)
  • Implements $setEquals operator (#596)
  • Update README.rst (#621)
  • Support $sum decimal type of values (#618)
  • Compare UUID values. (#616)
  • Test and fix sorting between mixed types
  • Fix travis config
  • $addField(fix): fix the not exist case in $toInt and $toDecimal (#612)
  • Add $toDecimal operator (#610)
  • Project missing fields in a nested dict fix (#605)
  • Dot support for localField (#603)
  • Fix grammar (#600)
  • Mark TTL Index as not implemented
  • Allow $all to be specified alongside other operators (#597)
  • Handle the specific case of inserting a Timestamp(0,0) to be replaced by the current time. (#593)
  • Add $dateToString opeartor (#590)
  • Support for $slice operator in projection argument (#588)

3.19.0

03 Feb 10:36

Choose a tag to compare

  • Add an easy way to compare exception types between mongomock and pymongo
  • collection.py: Fix return value of Collection.documents_count() (#586)
  • Type conversion (#583)
  • Add the new kwarg bypass_document_validation
  • Add support for subtracting milliseconds from a date (#581)
  • Implement the $addFields (alias $set) stage of aggregate. (#574)
  • Do not modify inserted documents, except for the _id
  • Test mongomock on Python 3.8 as well
  • Add raw batch BSON operations as not implemented (missing) features
  • Add new aggregation pipeline stages introduced in 4.2 and mark them as not implemented
  • Silent some new pyint warnings
  • Raise a NotImplementedError for valid query operators that have not been implemented in Mongomock yet
  • Raise an error when an aggregate expression contains more than one field. (#557)
  • Fix $ne on arrays
  • Fix lint error detected by a new version of pylint