You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
and `LoggerSettings.Builder.maxDocumentLength() <{+api+}/apidocs/mongodb-driver-core/com/mongodb/LoggerSettings.Builder.html#maxDocumentLength(int)>`__
425
-
methods that let you specify a maximum length for the extended JSON representation of a
426
-
BSON document in a log message.
427
-
428
-
.. _version-4.8:
429
-
430
-
What's New in 4.8
431
-
-----------------
432
-
433
-
.. warning:: Breaking Changes in v4.8
434
-
435
-
The v4.8 driver contains breaking changes. See :ref:`<java-breaking-changes-v4.8>`
436
-
and :ref:`<java-server-release-change-v4.8>` for more information.
437
-
438
-
.. important:: Deprecation Notice
439
-
440
-
The ``MapCodec`` and ``IterableCodec`` classes are deprecated.
441
-
Instead of ``MapCodec``, use ``MapCodecProvider``. Instead of ``IterableCodec``,
442
-
use ``CollectionCodecProvider``, or ``IterableCodecProvider`` for ``Iterable``
443
-
types that aren't ``Collection`` types.
444
-
445
-
Behavioral changes with the 4.8 driver release include:
446
-
447
-
- Requirement that you add an explicit dependency on the ``org.bson.codecs.record``
448
-
module if your application deploys the driver in an OSGi container and
449
-
relies on the driver for encoding and decoding Java records.
450
-
- Logging of new connection messages at the ``DEBUG`` level instead
451
-
of at ``INFO``.
452
-
453
-
New features of the 4.8 driver release include:
454
-
455
-
- Support for authentication with AWS. The driver takes an
456
-
optional dependency on both AWS SDK version 1 and version 2.
457
-
- Support for obtaining credentials from the environment for both GCP
458
-
and Azure for in-use encryption.
459
-
- Support for deserialization of records containing components with
460
-
generic parameters.
461
-
- Support for deserialization of records containing components with more
462
-
specific container types, such as ``SortedSet``, ``NavigableMap``, ``LinkedList``,
463
-
or ``TreeSet``.
464
-
- Support for recursive record types, records whose type
465
-
definitions contain cycles.
466
-
- Inclusion of the ``disambiguatedPaths`` field in change stream update events
467
-
when the ``showExpandedEvents`` server feature is enabled on MongoDB v6.1
468
-
and later. Learn more about this field from the `getDisambiguatedPaths() <https://mongodb.github.io/mongo-java-driver/4.8/apidocs/mongodb-driver-core/com/mongodb/client/model/changestream/UpdateDescription.html#getDisambiguatedPaths()>`__
469
-
API documentation. Learn more about the ``showExpandedEvents`` setting from
470
-
the :manual:`Expanded Events </reference/change-events/#expanded-events>`
471
-
server documentation.
472
-
473
-
.. _version-4.7.1:
474
-
.. _version-4.7:
475
-
476
-
What's New in 4.7.1
477
-
-------------------
478
-
479
-
The 4.7.1 driver patches a bug that affects
480
-
Client-Side Field Level Encryption and Queryable Encryption.
481
-
The bug can cause data corruption when rotating :ref:`Data Encryption Keys <csfle-key-architecture>`
482
-
(DEKs) encrypted with a :ref:`Customer Master Key <csfle-key-architecture>`
483
-
hosted on Google Cloud Key Management Service or Azure
484
-
Key Vault. The bug was present in version 4.7.0 of the driver
485
-
in the ``RewrapManyDataKey`` method and causes the
486
-
loss of your DEKs.
487
-
488
-
.. important:: Back Up your Key Vault Collection
489
-
490
-
Always back up your :ref:`Key Vault Collection <csfle-reference-key-vault>`
491
-
before you rotate your DEKs. If you lose your DEKs, you lose access to all
492
-
the data encrypted with those keys.
493
-
494
-
.. _version-4.7.0:
495
-
496
-
What's New in 4.7
497
-
-----------------
498
-
499
-
.. warning:: Breaking Changes in v4.7
500
-
501
-
The v4.7 driver contains breaking changes. See :ref:`<java-breaking-changes-v4.7>`
502
-
for more information.
503
-
504
-
New features of the 4.7 driver release include:
505
-
506
-
- Added full support for MongoDB 6.0.
507
-
508
-
- Added the following change stream support improvements:
509
-
510
-
- Enhanced pre-image and post-image support for :ref:`change streams <java-usage-watch>`.
511
-
Change stream watch helpers now accept ``whenAvailable`` and ``required``
512
-
for the ``fullDocument`` option. See the :manual:`change stream </changeStreams/#change-streams-with-document-pre--and-post-images>`
513
-
reference documentation for more information.
514
-
- Added a new ``fullDocumentBeforeChange`` option, which accepts
515
-
``whenAvailable`` and ``required``.
516
-
- Change events now include a ``fullDocumentBeforeChange`` field
517
-
when configured for display on your MongoDB collection.
518
-
- Added ``showExpandedEvents`` support for change streams.
519
-
- Added ``wallTime`` support to the ``ChangeStreamDocument`` class.
520
-
521
-
- Added :ref:`clustered index <java-clustered-indexes>` creation support.
522
-
- Support for new features related to :ref:`qe-manual-feature-qe`,
523
-
including support for automatic encryption (MongoDB v6.0 Enterprise or later
524
-
is required) and manual encryption.
525
-
526
-
- Support for the new Queryable Encryption shared library, which removes the need
527
-
for the ``mongocryptd`` process. The queryable encryption shared library requires
and the `ClientEncryptionSettings.Builder.kmsProviderPropertySuppliers() <https://mongodb.github.io/mongo-java-driver/4.6/apidocs/mongodb-driver-core/com/mongodb/ClientEncryptionSettings.html#getKmsProviderPropertySuppliers()>`__
566
-
API documentation for more information.
567
-
- Added compatibility to ``org.mongodb:mongodb-crypt``, a dependency for
568
-
CSFLE, for Apple M1 ARM-based hardware.
569
-
- Added a service provider interface (SPI) to allow the driver to specify
570
-
a custom DNS client. See the `DnsClient <https://mongodb.github.io/mongo-java-driver/4.6/apidocs/mongodb-driver-core/com/mongodb/spi/dns/DnsClient.html>`__
571
-
and the `DnsClientProvider <https://mongodb.github.io/mongo-java-driver/4.6/apidocs/mongodb-driver-core/com/mongodb/spi/dns/DnsClientProvider.html>`__
572
-
interface API documentation for more information.
573
-
- Added driver support for encoding and decoding between `Java records <https://docs.oracle.com/en/java/javase/17/language/records.html>`__
574
-
and BSON documents, which is enabled by default. See :ref:`<fundamentals-records>`
575
-
for more information.
576
-
577
-
.. _version-4.5:
578
-
.. _version-4.5.1:
579
-
580
-
What's New in 4.5.1
581
-
-------------------
582
-
583
-
If the DNS server returns an NXDomain error,
584
-
indicating a non-existent domain, the 4.5.1
585
-
driver no longer throws an exception.
586
-
587
-
.. _version-4.5.0:
588
-
589
-
What's New in 4.5
590
-
-----------------
591
-
592
-
New features of the 4.5 Java driver release include:
593
-
594
-
- Added support for specifying custom service names of SRV resource
595
-
records. See the ``srvServiceName`` setting in the :ref:`Connection
596
-
Options <connection-options>` guide for more information.
597
-
- Added support to customize UUID representation in a codec registry using
598
-
the ``CodecRegistries.withUuidRepresentation()`` method.
599
-
- Added support for overriding listener settings in ``ClusterSettings``,
600
-
``ServerSettings`` and ``ConnectionPoolSettings`` builders.
601
-
- All events received by ``ClusterListener``, ``ServerListener``, and
602
-
``ServerMonitorListener`` are now totally ordered using
603
-
a happens-before relationship when the listeners are not shared by
604
-
different MongoClient instances. To learn more about the happens-before
605
-
ordering, see `Happens-before Order <https://docs.oracle.com/javase/specs/jls/se17/html/jls-17.html#jls-17.4.5>`__
606
-
in the Java Language Specification.
607
-
- Added ``EnumCodec`` and ``EnumCodecProvider`` classes to separate codec
608
-
support for ``enum`` types from the ``PojoCodec`` class. The default
609
-
codec registries, which you can access from the ``MongoClientSettings`` and the ``Bson``
610
-
interfaces, now include the ``enum`` codec classes. If your application uses
611
-
a custom enumeration codec and one of the default registries, ensure
612
-
you order them as described in the section on :ref:`overriding codecs <codecs-override>`.
613
-
- Resolved performance issues that impacted versions 4.4 and 4.3 of the
614
-
driver. Performance in this version is similar to performance in 4.2.
615
-
- Resolved an issue in which errors originating from retrieving the cluster
616
-
description weren't passed to the ``onError`` Subscriber callback
617
-
- Resolved an issue with releasing ``ByteBuf`` instances when you connect
618
-
with compression enabled.
619
-
- Removed an unnecessary dependency on the ``javax.annotation.*`` packages
620
-
from the ``org.mongodb.driver-core`` OSGi bundle.
621
-
622
-
.. _version-4.4:
623
-
624
-
What's New in 4.4
625
-
-----------------
626
-
627
-
New features of the 4.4 Java driver release include:
628
-
629
-
- Compatibility with MongoDB 5.1 and support for Java 17
630
-
- Added support for index hints in an ``AggregateIterable``
631
-
- Added support for the ``$merge`` and ``$out`` aggregation stages on secondaries
632
-
- Use of the ``mergeObjects()`` method in the ``Updates`` builder
633
-
- ``DocumentCodec`` does not ignore a :ref:`CodecRegistry <codecs-codecregistry>` when writing to an ``Iterable`` or a ``Map`` instance
634
-
635
-
.. _version-4.3:
636
-
637
-
What's New in 4.3
638
-
-----------------
639
-
640
-
New features of the 4.3 Java driver release include:
641
-
642
-
- Added support for the MongoDB {+stable-api+}. For more information, see our
643
-
:ref:`{+stable-api+} guide <stable-api-java>`.
644
-
645
-
.. note::
646
-
647
-
Starting from February 2022, the **Versioned API** is known the
648
-
**{+stable-api+}**. All concepts and features remain the same with this
For more information about setup, see our documentation on how to
654
-
:atlas:`Create a New Serverless Instance </tutorial/create-new-serverless-instance/?jmp=docs_driver_java>`
655
-
- Added a builder API for the ``setWindowFields`` pipeline stage to allow the use of window operators
656
-
- Added support for setting Netty `io.netty.handler.ssl.SslContext <https://netty.io/4.1/api/io/netty/handler/ssl/SslContext.html>`__
657
-
- Added support for snapshot reads to ``ClientSession``
658
-
- Limited the rate of establishing new connections per connection pool
659
-
- Removed most restrictions on allowed characters in the field names of documents you insert or replace. This is a behavioral change for any application that is relying on client-side enforcement of these restrictions.
660
-
661
-
The following table shows the restriction status on allowed characters
662
-
in the field names of documents:
663
-
664
-
.. list-table::
665
-
:header-rows: 1
666
-
:stub-columns: 1
667
-
:widths: 15 25 60
668
-
669
-
* - Character
670
-
- Operation
671
-
- Description
672
-
673
-
* - **.**
674
-
- Insert and Replace
675
-
- Removed restrictions on field names containing this character.
676
-
677
-
* - **$**
678
-
- Insert
679
-
- Removed restrictions on field names starting with this character.
680
-
681
-
* - **$**
682
-
- Replace
683
-
- Removed restrictions in nested documents on field names containing this character.
684
-
685
-
* - **$**
686
-
- Replace
687
-
- Kept restrictions in top-level documents on field names starting with this character. This prevents accidental use of a replace operation when the intention was to use an update operation.
688
-
689
-
.. note::
690
-
691
-
Unacknowledged writes using dollar-prefixed or dotted keys might
692
-
be silently rejected by pre-5.0 servers, where some restrictions on
693
-
field names are still enforced in the server.
694
-
695
-
.. _version-4.2:
696
-
697
-
What's New in 4.2
698
-
-----------------
699
-
700
-
.. warning:: Breaking Changes in v4.2
701
-
702
-
The v4.2 driver contains breaking changes. See :ref:`<java-breaking-changes-v4.2>`
703
-
for more information.
704
-
705
-
New features of the 4.2 Java driver release include:
706
-
707
-
- Added Azure and GCP key stores to client-side field level encryption
708
-
- Added Kerberos caching tickets for reuse in multiple authentication requests
709
-
- Added `MongoClients <https://mongodb.github.io/mongo-java-driver/4.2/apidocs/mongodb-driver-sync/com/mongodb/client/MongoClients.html>`_ instances with ``MongoClientSettings`` or ``ConnectionString`` as the configuration
710
-
- Use of the ``explain()`` method on `find <https://mongodb.github.io/mongo-java-driver/4.2/apidocs/mongodb-driver-sync/com/mongodb/client/FindIterable.html#explain()>`_ and `aggregate <https://mongodb.github.io/mongo-java-driver/4.2/apidocs/mongodb-driver-sync/com/mongodb/client/AggregateIterable.html#explain()>`_ commands
711
-
- Added a `JsonObject <https://mongodb.github.io/mongo-java-driver/4.2/apidocs/bson/org/bson/json/JsonObject.html>`_ class to make encoding from and decoding to JSON more efficient by avoiding an intermediate Map representation
712
-
- Added a `BsonRepresentation <https://mongodb.github.io/mongo-java-driver/4.2/apidocs/bson/org/bson/codecs/pojo/annotations/BsonRepresentation.html>`_ annotation that allows you to represent the ``ObjectId`` BSON values as a ``String`` in `POJO <https://en.wikipedia.org/wiki/Plain_old_Java_object>`_ classes
713
-
- Added a `Filters.empty() <https://mongodb.github.io/mongo-java-driver/4.2/apidocs/mongodb-driver-core/com/mongodb/client/model/Filters.html#empty()>`_ method
714
-
715
-
.. _version-4.1:
716
-
717
-
What's New in 4.1
718
-
-----------------
719
-
720
-
New features of the 4.1 Java driver release include:
721
-
722
-
- Significant reduction in client-perceived failover times during planned maintenance events
723
-
- The `update() <https://mongodb.github.io/mongo-java-driver/4.1/apidocs/mongodb-driver-core/com/mongodb/client/model/UpdateOptions.html#hint(org.bson.conversions.Bson)>`_ and `delete() <https://mongodb.github.io/mongo-java-driver/4.1/apidocs/mongodb-driver-core/com/mongodb/client/model/DeleteOptions.html#hint(org.bson.conversions.Bson)>`_ methods now support index hints
724
-
- The ``find()`` method supports `allowDiskUse() <https://mongodb.github.io/mongo-java-driver/4.1/apidocs/mongodb-driver-sync/com/mongodb/client/FindIterable.html#allowDiskUse(java.lang.Boolean)>`_ for sorts that require too much memory to execute in RAM
725
-
- Added support for the MONGODB-AWS authentication mechanism using Amazon Web Services (AWS) Identity and Access Management (IAM) credentials
726
-
- Authentication requires fewer round trips to the server, resulting in faster connection setup
727
-
728
-
.. _version-4.0:
729
-
730
-
What's New in 4.0
731
-
-----------------
732
-
733
-
.. warning:: Breaking Changes in v4.0
734
-
735
-
The v4.0 driver contains breaking changes. See :ref:`<java-breaking-changes-v4.0>`
0 commit comments