Progress DataDirect for JDBC for MongoDB

    An asterisk (*) indicates support that was added in a hotfix or software patch subsequent to a release.

    Refer to the following resources for additional information:

    • Product Compatibility Guide: Provides the latest data source and platform support information. 
    • Fixes: Describes the issues resolved since general availability.  

    Version 6.1.0

      ENHANCEMENTS
      • The driver has been enhanced to optimize the handling of delete operations. As part of this change:
        • The driver no longer has an upper limit for how many rows can be deleted in a single operation.
        • The driver is significantly more efficient when removing all the rows in a table, resulting in improved performance.

        Available: 12/19/2024 | 6.1.0.001487
      • The driver has been enhanced to support the TLSv1.3 cryptographic protocol. Refer to CryptoProtocolVersion for details.
        Available: 10/22/2024 | 6.1.0.001426
      • The driver has been enhanced to allow you to configure whether the driver inserts String values that exceed the column length defined in the relational schema. You can configure this behavior using the new StringTruncationMethodForWrites property. Refer to StringTruncationMethodForWrites for details.
        Available: 8/16/2024 | 6.1.0.001374
      • The driver has been enhanced to allow you to increase the default length of VARCHAR columns to increase the size of data values you can insert with the driver. You can configure the new MinVarcharSize property to specify minimum default length of fields mapped to VARCHAR. Refer to MinVarcharSize for details.
        Available: 8/16/2024 | 6.1.0.001374
      • The driver has been enhanced to allow you to specify the format in which the driver renders the MongoDB composite timestamp. This allows you to specify the format of the MongoDB composite timestamp that is most appropriate for your use case. You can configure this driver behavior using the new TimestampFormat property. Refer to TimestampFormat for details.
        Available: 8/16/2024 | 6.1.0.001374
      • The driver has been enhanced to support replacing the internal mapping files at connection. When the CreateMap property is set to ForceNew, the driver replaces the schema map files specified by the SchemaMap property with newly generated files at the same location. In addition, if you are upgrading from driver version 6.0 to 6.1, the driver retains a copy of the 6.0 version of the schema map files as a backup when generating the 6.1 version of the files. Refer to CreateMap for details.
        Available: 7/4/2024
      • The driver has been enhanced to support data compression for all messages passed between the client and server. Data compression can significantly reduce network traffic, which, in turn, can lower data transfer costs for cloud services. This feature can be enabled using the new NetworkMessageCompressors property. Refer to NetworkMessageCompressors for details.
        Available: 6.1.0.000898
      • The driver has been enhanced to support data compression for all messages passed between the client and server. Data compression can significantly reduce network traffic, which, in turn, can lower data transfer costs for cloud services. This feature can be enabled using the new NetworkMessageCompressors property. Refer to NetworkMessageCompressors for details.
        Available: 6.1.0.000898
      • The driver has been enhanced to support MongoDB views created in the database. MongoDB views are discovered during the sampling process and mapped using the same schema format used for your collections. Refer to MongoDB views for details.
        Available: Driver version 6.1.0.000821
      • The driver has been upgraded to support the MongoDB Protocol using OP_MSG opcode.
        Available: Driver version 6.1.0.000776
      • The driver has been enhanced to support generating legacy virtual keys for newly-discovered nested objects. For driver versions earlier than 6.1, the driver used legacy virtual keys (unique identifiers) as a foreign key to associate the child table back to the parent. When the new LegacyVirtualKeys property is set to true, the driver generates legacy virtual keys in the <object_name>_GENERATED_ID column in new and migrated schemas. This functionality allows you to maintain consistent column naming for driver generated virtual key columns when migrating normalized schema maps from the 6.0 format. Refer to LegacyVirtualKeys for details.
      • The driver has been enhanced to support the JavaScript and Regex data types. For details, refer to Data types.
      • The new FlattenArrayBase property allows you to specify the starting ordinal value appended to column names for flattened arrays. When flattening arrays, column names are appended with an underscore and the ordinal value (<array_name>_<ordinal_location>). This property allows you to determine whether the first ordinal value in the series is either a 0 or a 1. For details, refer to FlattenArrayBase.*
      • The new JSONColumns property allows you to determine whether the driver exposes complex columns as JSON values in addition to their normalized mapping. For details, refer to JSONColumns.
        Note: Querying JSON values can be an expensive operation that could negatively impact performance; therefore, you should only query JSON values when necessary.*
      • The driver has been enhanced with the new ArrayNormalizationThreshold connection property. ArrayNormalizationThreshold allows you to specify the length of arrays (in elements) at which the driver begins to normalize arrays to child tables when generating a flattened view. This provides you with a method to control the size and focus of your parent table when encountering large arrays or nested arrays. For details, refer to ArrayNormalizationThreshold.*
      • The driver has added support for the MinKey and MaxKey special values. For details, refer to MinKey and MaxKey values.*
      • The driver has been enhanced to support LDAP (Lightweight Directory Access Protocol) authentication. For details, refer to LDAP authentication.*
      • The driver has been enhanced to support the SCRAM-SHA-256 authentication method for user ID and password authentication. When user ID and password authentication is enabled (AuthenticationMethod=UserIDPassword), the driver detects and uses the most secure method supported by the server. For details, refer to AuthenticationMethod.*
      • The normalization algorithm has been upgraded to improve sampling performance and optimize the generation of tables in the relational view. In addition, the new SchemaFormat connection property allows you to determine to which relational view the driver maps data, including normalized, mixed, and flattened views. For details, refer to Mapping objects to tables.
      • The new SchemaFilter connection property allows you to specify the databases for which the driver fetches metadata. This can improve connection times limiting the collections for which metadata is fetched to only those required by your application. For details, refer to SchemaFilter.
      • The new QualifyNormalizedNames property allows you to determine whether names of relational child-tables normalized from arrays, objects, subdocuments are prefixed with the collection name and names of any parent objects. Refer to QualifyNormalizedNames for details.
      • The new SpecialCharBehavior property allows you to determines how the driver handles the mapping of native identifiers containing characters that would require them to be quoted in SQL statements. This property provides a method to choose to continue using identifiers that require quotation marks or for the driver to modify affected identifier names so that quotation marks are not required. For details, refer to SpecialCharBehavior.
      • The driver has been enhanced to support replica set failover for write operations. This feature can be enabled by specifying your replica set name using the new ReplicaSetName connection property. For details, refer to ReplicaSetName.
      • The driver has been enhanced to support connections to MongoDB Atlas clusters through a domain. Instead of specifying connection information for individual nodes, driver allows you to specify the name of the domain using the ServerName property. The driver then uses a DNS lookup to discover the member nodes in the cluster to which it can connect.
      • The new EnableDNSLookup property specifies whether the driver performs a DNS lookup to discover member nodes of a cluster when connecting. When enabled (the default), the driver will discover and connect to the nodes of a cluster when a domain is specified by the ServerName property. Alternatively, if not connecting to cluster, you can experience improved connection times by disabling this property. Refer to EnableDNSLookup for details.
      • Includes the DataDirect JDBC Driver Configuration Manager for quick configuration and testing of your driver. This tool allows you to:
        • Generate and edit connection URLs
        • Test connect connection URLs
        • Execute SQL commands for testing
        • Access connection property descriptions and the full product documentation
        For details, refer to Generating connection URLs with the Configuration Manager.
      • The driver has been enhanced to use proxy server settings defined in the JVM system properties by default. If no proxy settings are defined in the connection string or data source, the driver will attempt to use the values of the http.proxyHost and http.proxyPort JVM system properties to connect to the database.
      • The driver has been enhanced to allow you to limit sampling to only new collections when refreshing the schema map. This provides for quicker processing times if you only want to map new collections or if existing collections are unchanged. You can limit sampling limit sampling to only new collections by specifying the NEW option in a Refresh Map statement.
      • The driver has been enhanced to support the native Decimal128 data type, which maps to the Decimal JDBC type by default.
      • The driver supports migrating schema maps and internal files created with the 6.0 version of the driver so that they can be used by the 6.1 driver. By migrating these files, you can continue to execute the same SQL statements that you did with the 6.0 driver, while still leveraging the advantages of the 6.1 driver. Refer to Migrating schema maps and native files to 6.1 for details.
      • The driver has been enhanced to include timestamp in the Spy and JDBC packet
        logs by default. If required, you can disable the timestamp logging by
        specifying the following at connection: For Spy logs, set
        spyAttributes=(log=(file)Spy.log;timestamp=no) and for JDBC packet logs,
        set ddtdbg.ProtocolTraceShowTime=false.*
      • Interactive SQL is now installed with the product. Interactive SQL is a command-line interface that supports connecting your driver to a data source, executing SQL statements and retrieving results in a terminal. This tool provides a method to quickly test your drivers in an environment that does not support GUIs.
      • The driver has been enhanced to support the native Decimal128 data type, which maps to the Decimal JDBC type by default. See Data Types for details.
      • The CAST_TO_NATIVE function escape has been introduced to select or insert a value of a specific native type. This can be particularly useful when MongoDB has inconsistent native types for a given field. Currently, CAST_TO_NATIVE can only be used with the ObjectID type in SELECT statement filters and literal INSERT values.*
      CHANGED BEHAVIOR
      • The installer program now requires you to install a JRE that is Java SE 11 or higher before running the installer. In earlier versions, the JRE used by the installer program was included in the product. However, to avoid potential security vulnerabilities, the installer program no longer includes a JRE. Instead, the installer program uses the JRE in your environment to allow for the most secure version of a JRE to be used.*
        Note: This change does not affect the JVM requirements for the driver. For the latest driver requirements, refer to the Product Compatibility Guide.
        Available: 7/3/2024
      • The SchemaDefinition property has been added as an alias for the SchemaMap property. This change allows users to continue using their configurations for earlier versions of the driver until they are able update their connection settings. Note that SchemaDefinition is a deprecated property and may not be supported in future versions of the driver.*
      • The default mapping behavior of the driver has been changed from generating a normalized view of data to one that is a mixture of normalized and flattened views. The mixed view reduces the number of tables generated while providing a more intuitive data model. You can configure the mapping behavior using the new SchemaFormat property. For details, refer to SchemaFormat.
      • The Schema Tool and manual customizations of the schema map are not currently supported.
      • The AuthenticationMethod property has been updated to include a new valid value, None. When set to None, the driver does not attempt to authenticate. In earlier versions, the driver would connect without authentication when AuthenticationMethod=userIDpassword and a userID and password were not specified. The earlier behavior is no longer supported. For details, refer to AuthenticationMethod.
      • The purpose and behavior of the AuthenticationDatabase property has been changed. The property is now used for user id and password authentication (AuthenticationMethod=userIdPassword) to specify the database in which the user id was created. This allows you to explicitly select a set of credentials when the same user ID was created in multiple databases.
        As part of this change, AuthenticationDatabase is ignored when using Kerberos authentication. The driver now uses $external as the authentication database for all Kerberos-enabled connections. For details, refer to AuthenticationDatabase.
      • The CreateDB connection property has been replaced by the CreateMap property. The valid values and behavior are identical for both properties. For details, refer to CreateMap.
      • The ConfigOptions connection property has been deprecated. As a result, the driver has been enhanced to support setting each of the configuration options formerly supported by ConfigOptions as standalone connection properties.
      • The following Config Options are no longer supported:
        • DefaultVaultVarcharSize
        • MaxVarcharSize
        • MinVarcharSize
        To determine the default length of VARCHAR fields, the driver multiplies the largest discovered field by 1.5. For example, if the largest detected field has a length of 100 characters, the driver sets the default length to 150 characters.

      Version 6.0.2

        ENHANCEMENTS
        • The driver and schema tool have been enhanced to allow you to limit sampling to only new collections when refreshing the schema map. This provides for quicker processing times if you only want to map new collections or if existing collections are unchanged. You can specify the sampling behavior using the following methods:
          • The Schema Tool: At connection, the Schema Tool prompts you to select the sampling behavior for the session.
          • The Refresh Map SQL extension: When executing the Refresh Map SQL extension, you can specify the NEW option in the statement to limit sampling to only new collections.
        • The driver has been enhanced to support Kerberos authentication.
        CHANGED BEHAVIOR
        • The SchemaMap connection property has been created to replace the SchemaDefinition connection property. The SchemaMap property should now be used to specify the path of the configuration file where the relational map of native data is written.

        Version 6.0.1

        ENHANCEMENTS
        • The driver has been enhanced to resolve naming conflicts that can occur when exposing native objects using unquoted, uppercase identifiers (the default behavior). To avoid conflicts, the driver appends an underscore separator and integer (for example, _1) to identifiers that differ only by case.
        • The DefaultVarcharSize configuration option has been enhanced to generate dynamic default lengths for VARCHAR columns when specifying a multiplier value (for example, 2x) for the option. When specifying a multiplier value, the default length for a VARCHAR column is determined by multiplying the value specified by the size of the largest value detected in that column. This results in a default length that is proportionate to the size of the data within the column, which can improve the memory efficiency within the driver and application. The default value for this option has been updated to 1.5x.
        • You can further define the default length for VARCHAR columns by tuning the new MaxVarcharSize and MinVarcharSize configuration options. These options allow you to specify maximum and minimum size limits for the default length generated by the DefaultVarcharSize configuration option. When tuned for your data, MaxVarcharSize and MinVarcharSize can improve memory efficiency and avoid the undesired truncation of VARCHAR values.
        • The KeywordConflictSuffix configuration option allows you to specify the suffix that is appended to object and field names that conflict with SQL engine keywords.
        • The driver has been enhanced to use the MongoDB aggregation framework to improve performance in the execution of SQL queries using LIMIT, ORDER BY, and TOP clauses.
        • The following SQL extensions have been added to the driver:
          • REFRESH MAP adds newly discovered objects to your relational view of native data. It also incorporates any configuration changes made to your relational view by reloading the schema definition and associated files. REFRESH MAP is an expensive query since it involves the discovery of native data.
          • RELOAD MAP reloads the schema definition and associated files. This statement allows you to update your relational view of native data while the driver is connected to the data store. RELOAD MAP does not discover changes made to the native data store.
        • The driver has been enhanced to improve the handling of large result sets and reduce the likelihood of out-of-memory errors through the modification of the FetchSize connection property and the introduction of the ResultMemorySize connection property.
        • The driver has been enhanced to further ensure data integrity when mapping native
          MongoDB data types to a relational schema. When inconsistent data types are
          detected, the driver determines which SQL type to use based on the combination
          of native types found. These combinations are handled in the following manner:
          • Bigint and Integer map to BIGINT
          • Double and Integer map to DOUBLE
          • All other combinations map to VARCHAR or LONGVARCHAR
        CHANGED BEHAVIOR
        • The driver no longer registers the Statement Pool Monitor as a JMX MBean by
          default. To register the Statement Pool Monitor and manage statement pooling with
          standard JMX API calls, the new RegisterStatementPoolMonitorMBean connection
          property must be set to true.

        Version 6.0.0

          ENHANCEMENTS
          • When first connecting to a MongoDB server, the driver automatically creates a normalized schema of the data and generates a SchemaDefinition for housing and sharing the normalized schema.
          • Native MongoDB data is fully normalized during the normalization process,
            regardless of the depth of nested arrays, documents, and objects.
          • The driver uses the MongoDB aggregation framework to improve performance in the execution of SQL queries using aggregates, GROUP BY clauses, or HAVING clauses.
          • The following Schema Tool enhancements have been made:
            • The Restart Wizard feature allows you to reset the relational view of your data from the Table Wizard menu.
            • The Update Schema feature allows you to map all new native objects to your schema definition with a single click.
            • Support for selecting multiple objects in the Table Wizard for improved object management when customizing your schema.
          CHANGED BEHAVIOR
          • The driver no longer registers the Statement Pool Monitor as a JMX MBean by
            default. To register the Statement Pool Monitor and manage statement pooling with
            standard JMX API calls, the new RegisterStatementPoolMonitorMBean connection
            property must be set to true.

          Version 5.1.4

          ENHANCEMENTS
          • The Schema Tool has been enhanced to normalize native data to an arbitrary
            depth.
          • Eight connection properties have been added to the driver to support SSL.
          • A Connection Options field has been added to the Schema Tool's Open Schema
            Definition dialog (the first window that appears when running the schematool.jar
            file).
          • The following configuration options have been introduced to increase flexibility
            when mapping native data to a relational schema:
            • DefaultVarcharSize determines the default length of fields that are discovered and mapped as VARCHAR by the driver.
            • LeadingUnderscoreReplacement permits the replacement of leading underscores with a string.
          • Support for result set holdability has been added to the driver.

          Version 5.1.3

          GA Release Features
          • Support for MongoDB
          • Supports SQL to select data from MongoDB
          • Supports insert, update, and delete capabilities
          • Translates SQL statements provided by an application into native MongoDB BSON statements
          • Includes the DataDirect Schema Tool, which guides you through the process of mapping the MongoDB dynamic schema data model to a customized relational data model.

          Connect any application to any data source anywhere

          Explore all DataDirect Connectors

          A product specialist will be glad to get in touch with you

          Contact Us