Added support for Azure Key Vault, Google Cloud Key Management, and any KMIP compliant Key Management System to be used as master key storage for client side encryption.
The driver now implements the feature flag mechanism for incompatible changes and bug fixes. Changes gated behind feature flags for 2.18 are passing view filter and options to aggregate and validation of correct usage of update vs replace methods, as described below.
The estimated_document_count method is now using the count server command instead of $collStats` aggregation pipeline stage, to support operation on views. Applications using the Stable API should upgrade to server versions 5.0.8 (if using MongoDB 5.0) or 5.3.2 (if using MongoDB 5.1/5.2/5.3) or newer to use the count command when API strict is enabled, or avoid setting api_strict: true when constructing Mongo::Client instances with server versions 5.0.0-5.0.7 and 5.1.0-5.3.1.
The DBRef class has been moved to bson-ruby. For backwards compatibility, BSON::DBRef is aliased as Mongo::DBRef. The BSON::DBRef class derives from BSON::Document, unlike the legacy Mongo::DBRef which derived from Object. BSON::DBRef retains all attributes passed into its constructor, unlike Mongo::DBRef which only allowed $ref, $id, and $db. BSON::DBRef also reorders the fields if necessary to place $ref, $id, and $db first, in that order, as required by the MongoDB server.
BulkWrite::Result class now has the acknowledged? attribute.
Providing an empty array of operations to the bulk write is now an error.
BSON serialization performance has been improved.
ActiveJob middleware was added to the query cache.
This beta release of the Ruby driver supports MongoDB version 5.2 and 6.0. This release can be used for early testing of new features, but are not suitable for production deployments.
Please note that MongoDB 6.0 binaries are currently available only as release candidates. Release candidates can be used for early testing of new features, but are not suitable for production deployments.
Added support for Azure Key Vault, Google Cloud Key Management, and any
KMIP compliant Key Management System to be used as master key storage for
client side encryption.
This page documents significant changes in driver releases.
It is not an exhaustive list of changes and generally does not enumerate
bug fixes; please consult the releases page on GitHub <https://github.com/mongodb/mongo-ruby-driver/releases>_ for a more
comprehensive list of changes in each version of the driver and the
releases page in Jira <https://jira.mongodb.org/projects/RUBY?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=released>_
for the complete list of changes, including those internal to the driver and
its test suite.
2.18
This release of the Ruby driver supports MongoDB version 5.2 and 6.0.
This release includes the following new features:
Added support for queryable encryption <https://www.mongodb.com/docs/upcoming/core/queryable-encryption/queryable-encryption/>_.
Added support for Azure Key Vault, Google Cloud Key Management, and any
KMIP compliant Key Management System to be used as master key storage for
client side encryption.
The DBRef class has been moved to bson-ruby and requires bson-ruby 4.13.0
or greater. For backwards compatibility, BSON::DBRef is aliased as Mongo::DBRef.
The BSON::DBRef class derives from BSON::Document, unlike Mongo::DBRef which
derived from Object. BSON::DBRef retains all fields, unlike Mongo::DBRef which
only allowed $ref, $id, and $db. BSON::DBRef also reorders the fields if
necessary to place $ref, $id, and $db first, in that order.
CRUD methods, methods for listing databases, collection, and indexes management
methods now support a new option comment. This option enables users to
specify an arbitrary comment to help trace the operation through the
database profiler, currentOp and logs.
Ruby Driver version 2.6.0 accidentally broke estimated_document_count on views
by changing its implementation to use aggregate and a $collStats stage
instead of the count command.
Ruby Driver version 2.18.0 is fixing estimated_document_count on views by
reverting back to using count in its implementation.
Due to an oversight, the count command was omitted from the Stable API in
server versions 5.0.0 - 5.0.7 and 5.1.0 - 5.3.1, so users of the Stable API
with estimated_document_count are recommended to upgrade their MongoDB clusters
to 5.0.8 or 5.3.2 (if on Atlas) or set api_strict: false when constructing
their MongoClients.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps mongo from 2.8.0 to 2.18.0.
Release notes
Sourced from mongo's releases.
... (truncated)
Changelog
Sourced from mongo's changelog.
... (truncated)
Commits
3e7e659
Release 2.18.0c392e46
update atlas certse978484
RUBY-3035 Reuse client in auto encrypter if unlimited pool (#2552)bad7fdc
RUBY-3046 send no_cursor_timeout to server again (#2557)70cb9e4
Use RSpec.current_example instead of duplicating that implementation in our c...b9e84a8
Show monitor addresses in to_s for background thread leakage diagnostics (#2560)0a2e940
Fix FLE assertion (#2561)97fc200
RUBY-3031 Update expected FLE 2 find payloads (#2558)187713d
RUBY-3037: Support index wildcard_projection option (#2541)9c59557
RUBY-2797 Forward find conditions to View#aggregate (#2556)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)