Releases: mongomock/mongomock
Releases · mongomock/mongomock
4.3.0
What's Changed
- Fix
collection.find_one(...)
sorting usingdicts
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
- @santiagopardal made their first contribution in #897
Full Changelog: 4.2.0...4.3.0
4.2.0
What's Changed
- Added support for
$ifNull
multi field support,$isNumber
,$isArray
by @David-Taub in #749 - Add
read_concern
kwarg toget_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 deprecatedpkg_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
andsetup.py
have
been removed in the scope of the switch tohatch
. - 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
- @David-Taub made their first contribution in #749
- @kepricon made their first contribution in #791
- @maximkir-fl made their first contribution in #796
- @plaan made their first contribution in #769
Full Changelog: 4.1.2...4.2.0-post.1
4.1.2
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
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, usespymongo
v4 interface
3.23.0
- 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
3.22.0
- 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
- 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
- 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
- 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