Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.4.0 (2024-02-10)

Features

Miscellaneous Chores

1.2.1 (2023-11-26)

Bug Fixes

  • added support for read preference specified by the URL (#207) (9e4d569)
  • applies the global timeout value to each query (#215) (64f8ea1)
  • handle read preferences without tags (50ea98d)
  • preserve the order of the keys (#211) (b360d87)

1.2.0 (2023-08-30)

Features

  • Supports passing arrayFilters option through find_one_and_update (#201) (082878b)

Bug Fixes

1.1.0 (2023-07-30)

Features

1.0.3 (2023-05-13)

Bug Fixes

  • check if monitor pid exists before stopping (6e0c8b2)

Enhancements

1.0.2 (2023-01-02)

Bug Fixes

1.0.1 (2022-12-17)

Bug Fixes

  • replace :code.priv_dir/1 function (da0fd6c)

1.0.0 (2022-11-27)

Bug Fixes

  • add migration (da65de4)
  • remove a bug in the hello handshake protocol (thanks to fireproofsocks for reporting) (59aa841)
  • remove derived attributes in the dump function (c1b60b4)

Enhancements

  • improve the dump and load functions (#154) (e7f2d44)
  • use the same timestamps in new/0 function (0db61da)

Miscellaneous Chores

0.9.3 (2022-10-14)

  • Bugfix
    • fix a bug in the hello handshake protocol (thanks to fireproofsocks for reporting)
  • Enhancements
    • add migration

0.9.2 (2022-09-24)

  • Bugfix
    • fix a crash in the streaming hello monitor, if the server sends more than one response at once
    • add support for the new hello handshake
    • refactor :timeout option (thanks to JD-Robertson for reporting)
    • add timestamps macro to the collection module to handle inserted_at and updated_at attributes (thanks to carlosliracl)

0.9.1 (2022-05-27)

  • Bugfix
    • add backward compatible for Elixir < 1.13 (thanks to ja-jimenez)

0.9.0 (2022-05-21)

  • Enhancements
    • add colored log output
    • add telemetry support for execution
    • add new Repo module (thanks to daskycodes)
    • add missing typespecs (thanks to fdie)
    • refactor transaction api to support nested transaction
    • add Mongo.rename_collection/3 command

0.8.4 (2022-03-09)

  • Bugfix
    • add missing excludes from dump function (collections)

0.8.3 (2022-02-17)

  • Bugfix
    • fix no function clause matching (thanks to bodbdigr)

0.8.2 (2022-02-03)

  • Enhancements
    • Remove a compiler warning (thanks to a-jimenez )

0.8.1 (2022-01-22)

  • Enhancements
    • Fix for serializing BSON Regex without options (thanks to MillionIntegrals)
    • Misc doc changes (thanks to kianmeng)
    • Added support for OP_MSG exhaustAllowed flag
    • Added support for streaming protocol
    • Added Insights app for development ]()

0.8.0 (2021-11-07) (0.7.5 was not published)

  • Enhancements
    • replica set connection: faster topology update if the primary is down (thanks to p-mongo)
    • added custom Mongo.Encoder protocol (thanks to esse)
    • added collection from yildun project
    • fixed an issue that the bulk operation does not stop after any insert/update/delete failed (thanks to ja-jimenez)

0.7.4 (2021-06-21)

  • Enhancements
    • added a new option to specify a timeout, when increasing the connection pool is no option

0.7.3 (2021-05-29)

  • Enhancements
    • added support for OTP 24
    • Add support for tls setting in connection string (tschmittni)
    • Replace deprecated functions (OTP 24) (aenglisc )

0.7.2 (2021-05-19)

  • Enhancements
    • Adds test to cover one of Mongo.find/4 errors (vukanac)
    • Update specs for Mongo.find/4 with error tuple (vukanac)
    • Fix build warnings and correct typespec (joeapearson)
    • Update db_connection version to remove System.stacktrace warnings (vukanac)
    • Update SCRAM auth procedure (LetThereBeDwight)

0.7.1 (2021-01-01)

  • Enhancements
    • upgraded decimal to 2.0, jason to 1.2
    • Add proper support for tailable cursors and awaitData (PR #74)

0.7.0 (2020-04-17)

  • Enhancements

    • refactored event notification system
    • added support for retryable reads and writes
    • refactored the test cases
    • now using mtools for a MongoDB deployment in the travis ci environment
    • travis ci uses only the latest MongoDB version The failCommand
    • Session.commit_transaction returns now :ok or an error {:error, %Mongo.Error{}}
  • Bugfixes

    • Using max_staleness_ms > 0 results in a crash
    • Read preferences are sent to mongos

0.6.5 (2020-03-30)

0.6.4 (2020-01-24)

  • Bugfixes
    • fixed bug in Mongo.TopologyDescription in case of a shard cluster deployment (#39)

0.6.3 (2020-01-23)

0.6.2 (2019-11-15)

  • Enhancements
    • refactored the api of Mongo.limits and Mongo.wire_version
    • add support for tracking recovery token from response in a sharded transaction

0.6.1 (2019-11-01)

0.6.0 (2019-09-18)

  • Enhancements
    • refactored writeConcern
    • refactored filter_nils
    • refactored usage of ReadPreference
    • added support for sessions (ServerSession, SessionPool, Session)
    • added support for transaction
    • added Decimal128 encoder
    • added support for transaction to gridfs and bulk operation
    • added create command (explicitly creating a collection or view)

0.5.7 (2019-06-25)

  • Bug Fixes

    • Test for existing index in Bucket works right now
  • Enhancements

    • Better handling for the :timeout options

0.5.6 (2019-06-14)

  • Bug Fixes

    • Fixed a match error in after_fun of cursor module
    • Fixed a match error in the result of function Monitor.force_check
    • Resolved decode problem for the Binary (Old) BinData subtype
  • Enhancements

0.5.5 (2019-05-22)

  • Bug Fixes
    • Fixed a match error when using Windows OS

0.5.4 (2019-05-21)

0.5.3 (2019-05-02)

  • Enhancements

    • Travis now using the right MongoDB version
  • Bug Fixes

    • Added test unit for change streams
    • Removed debug code from change streams

0.5.2 (2019-05-01)

  • Enhancements
    • Added op_msg support (See)
    • Fixed change streams in case of error codes: 11601, 136 and 237 from resuming
    • Reorganized error handling

0.5.1 (2019-04-28)

  • Enhancements
    • Upgraded to DBConnection 2.0.6
    • Refactored code, simplified code and api
    • Replaced deprecated op_code by database commands
    • Update_one, update_many, replace_one, replace_many return upserted ids
    • Add support for all find options
    • Add support for MongoDB 3.6 collection Change Streams
    • Ass support for SCRAM-SHA-256 (MongoDB 4.x)

0.4.8-dev

  • Enhancements

    • Added hostname and port to exceptions
    • Added support for x509 authentication
    • Allow passing only partial read_preference information
    • Add support for GridFS
  • Bug Fixes

    • Fixed a connection leak
    • Properly parse write concern for URL
    • Properly follow read preference for secondary_preferred

v0.4.7 (2018-09-13)

  • Enhancements
    • Added 4.0 to supported versions
    • Initial support for mongodb+srv URLs
    • Support for Decimal128

v0.4.6 (2018-05-20)

0.4.5 (2018-04-08)

  • Enhancements

    • Should now be able to send a query to your server before the connection is fully made
  • Bug Fixes

    • Should actually be able to query for longer than 5 seconds

0.4.4 (2018-02-09)

  • Enhancements

    • Added support for using a mongo url via the :url key
    • Added MongoDB 3.6 to supported versions
    • Added support for the deprecated undefined BSON type
  • Bug Fixes

    • Added another case for BSON NaN
    • Fixed encoding and decoding of the BSON Timestamp type
    • Should now figure out Topology for replica sets even if you exclude the :type key
    • Fixed an issue where our monitors would become empty, preventing the driver from reconnecting to a downed database

0.4.3 (2017-09-16)

  • Enhancements

    • Send TLS server name indication (SNI) if none is set in the :ssl_opts
    • Fixed a couple dialyzer issues
    • Add basic examples of $and, $or, and $in operators in README
  • Bug Fixes

    • Ensure cursor requests are routed to the proper node in the cluster
    • No longer attempting to authenticate against arbiter nodes
    • Prevent monitor errors if you have stopped the mongo process

0.4.2 (2017-08-28)

  • Bug fixes
    • Fix application crash when a replica set member goes offline
    • Fix application crash on start when a replica set member is offline

0.4.1 (2017-08-09)

  • Bug fixes
    • Monitors no longer use a pool
    • Can now connect to a Mongo instance using a CNAME
    • Pass options through Mongo.aggregate/4

0.4.0 (2017-06-07)

  • Replica Set Support

0.3.0 (2017-05-11)

  • Breaking changes
    • Remove BSON.DateTime and replace it with native Elixir DateTime

0.2.1 (2017-05-08)

  • Enhancements

    • SSL support
    • Add functions BSON.DateTime.to_elixir_datetime/1 and BSON.DateTime.from_elixir_datetime/1
  • Changes

    • Requires Elixir ~> 1.3

0.2.0 (2016-11-11)

0.1.1 (2015-12-17)

  • Enhancements

    • Add BSON.DateTime.from_datetime/1
  • Bug fixes

    • Fix timestamp epoch in generated object ids
    • Fix Mongo.run_command/3 to accept errors without code

0.1.0 (2015-08-25)

Initial release