Interface MongoConfig

  • All Superinterfaces:
    java.io.Serializable
    All Known Implementing Classes:
    ReadConfig, WriteConfig

    public interface MongoConfig
    extends java.io.Serializable
    The MongoConfig interface.

    Provides MongoDB specific configuration.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String CLIENT_FACTORY_CONFIG
      The MongoClientFactory configuration key
      static java.lang.String CLIENT_FACTORY_DEFAULT
      The default MongoClientFactory configuration value
      static java.lang.String COLLECTION_NAME_CONFIG
      The collection name config
      static java.lang.String COMMENT_CONFIG
      Add a comment to mongodb operations
      static java.lang.String CONNECTION_STRING_CONFIG
      The connection string configuration key
      static java.lang.String CONNECTION_STRING_DEFAULT
      The default connection string configuration value
      static java.lang.String DATABASE_NAME_CONFIG
      The database name config
      static java.lang.String PREFIX
      The prefix for all general Spark MongoDB configurations.
      static java.lang.String READ_PREFIX
      The prefix for specific output (read) based configurations.
      static java.lang.String WRITE_PREFIX
      The prefix for specific input (write) based configurations.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default boolean containsKey​(java.lang.String key)
      Returns true if this map contains a mapping for the specified key.
      static MongoConfig createConfig​(java.util.Map<java.lang.String,​java.lang.String> options)
      Create a Mongo Configuration that does not yet have a fixed use case
      default java.lang.String get​(java.lang.String key)
      Returns the value to which the specified key is mapped
      default boolean getBoolean​(java.lang.String key, boolean defaultValue)
      Returns the boolean value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
      default java.lang.String getCollectionName()  
      default @Nullable org.bson.BsonString getComment()  
      default com.mongodb.ConnectionString getConnectionString()  
      default java.lang.String getDatabaseName()  
      default double getDouble​(java.lang.String key, double defaultValue)
      Returns the double value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
      default int getInt​(java.lang.String key, int defaultValue)
      Returns the int value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
      default java.util.List<java.lang.String> getList​(java.lang.String key, java.util.List<java.lang.String> defaultValue)
      Returns a list of strings from a comma delimited string to which the specified key is mapped, or defaultValue if there is no mapping for the key.
      default long getLong​(java.lang.String key, long defaultValue)
      Returns the long value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
      default com.mongodb.MongoNamespace getNamespace()  
      java.util.Map<java.lang.String,​java.lang.String> getOptions()  
      default java.lang.String getOrDefault​(java.lang.String key, java.lang.String defaultValue)
      Returns the value to which the specified key is mapped, or defaultValue if this config contains no mapping for the key.
      java.util.Map<java.lang.String,​java.lang.String> getOriginals()  
      static ReadConfig readConfig​(java.util.Map<java.lang.String,​java.lang.String> options)
      Create a Read Configuration
      default MongoConfig subConfiguration​(java.lang.String prefix)
      Gets all configurations starting with a prefix.
      default ReadConfig toReadConfig()  
      default WriteConfig toWriteConfig()  
      MongoConfig withOption​(java.lang.String key, java.lang.String value)
      Return a MongoConfig instance with the extra options applied.
      MongoConfig withOptions​(java.util.Map<java.lang.String,​java.lang.String> options)
      Return a MongoConfig instance with the extra options applied.
      static WriteConfig writeConfig​(java.util.Map<java.lang.String,​java.lang.String> options)
      Create a Write Configuration
    • Field Detail

      • PREFIX

        static final java.lang.String PREFIX
        The prefix for all general Spark MongoDB configurations.

        For example the CONNECTION_STRING_CONFIG should be defined as: " spark.mongodb.connection.uri".

        "spark.mongodb."

        See Also:
        Constant Field Values
      • WRITE_PREFIX

        static final java.lang.String WRITE_PREFIX
        The prefix for specific input (write) based configurations.

        Overrides any configurations that just use the PREFIX. For example to override the CONNECTION_STRING_CONFIG just for inputting data into MongoDB: "spark.mongodb.input.connection.uri".

        "spark.mongodb.write."

        See Also:
        Constant Field Values
      • READ_PREFIX

        static final java.lang.String READ_PREFIX
        The prefix for specific output (read) based configurations.

        Overrides any configurations that just use the PREFIX. For example to override the CONNECTION_STRING_CONFIG just for outputting data from MongoDB: "spark.mongodb.output.connection.uri".

        "spark.mongodb.read."

        See Also:
        Constant Field Values
      • CLIENT_FACTORY_CONFIG

        static final java.lang.String CLIENT_FACTORY_CONFIG
        The MongoClientFactory configuration key

        The default implementation uses the CONNECTION_STRING_CONFIG as the connection string.

        Custom implementations are allowed and must implement the MongoClientFactory interface.

        "mongoClientFactory"

        See Also:
        Constant Field Values
      • CLIENT_FACTORY_DEFAULT

        static final java.lang.String CLIENT_FACTORY_DEFAULT
        The default MongoClientFactory configuration value

        Requires the CONNECTION_STRING_CONFIG for configuring the resulting MongoClient

      • CONNECTION_STRING_CONFIG

        static final java.lang.String CONNECTION_STRING_CONFIG
        The connection string configuration key

        "connection.uri"

        See Also:
        Constant Field Values
      • CONNECTION_STRING_DEFAULT

        static final java.lang.String CONNECTION_STRING_DEFAULT
        The default connection string configuration value

        "mongodb://localhost:27017/"

        See Also:
        Constant Field Values
      • DATABASE_NAME_CONFIG

        static final java.lang.String DATABASE_NAME_CONFIG
        The database name config

        "database"

        See Also:
        Constant Field Values
      • COLLECTION_NAME_CONFIG

        static final java.lang.String COLLECTION_NAME_CONFIG
        The collection name config

        "collection"

        See Also:
        Constant Field Values
      • COMMENT_CONFIG

        static final java.lang.String COMMENT_CONFIG
        Add a comment to mongodb operations

        Allows debugging and profiling queries from the connector.

        "comment"

        See: $comment

        Note: Requires MongoDB 4.6+

        See Also:
        Constant Field Values
    • Method Detail

      • readConfig

        static ReadConfig readConfig​(java.util.Map<java.lang.String,​java.lang.String> options)
        Create a Read Configuration
        Parameters:
        options - the configuration options
        Returns:
        the read configuration
      • writeConfig

        static WriteConfig writeConfig​(java.util.Map<java.lang.String,​java.lang.String> options)
        Create a Write Configuration
        Parameters:
        options - the configuration options
        Returns:
        the write configuration
      • getOptions

        java.util.Map<java.lang.String,​java.lang.String> getOptions()
        Returns:
        the options for this MongoConfig instance
      • withOption

        MongoConfig withOption​(java.lang.String key,
                               java.lang.String value)
        Return a MongoConfig instance with the extra options applied.

        Existing configurations may be overwritten by the new options.

        Parameters:
        key - the key to add
        value - the value to add
        Returns:
        a new MongoConfig
      • withOptions

        MongoConfig withOptions​(java.util.Map<java.lang.String,​java.lang.String> options)
        Return a MongoConfig instance with the extra options applied.

        Existing configurations may be overwritten by the new options.

        Parameters:
        options - the context specific options.
        Returns:
        a new MongoConfig
      • getOriginals

        java.util.Map<java.lang.String,​java.lang.String> getOriginals()
        Returns:
        the original options for this MongoConfig instance
      • getConnectionString

        default com.mongodb.ConnectionString getConnectionString()
        Returns:
        the connection string
      • getNamespace

        default com.mongodb.MongoNamespace getNamespace()
        Returns:
        the namespace related to this config
      • getDatabaseName

        default java.lang.String getDatabaseName()
        Returns:
        the database name to use for this configuration
      • getCollectionName

        default java.lang.String getCollectionName()
        Returns:
        the collection name to use for this configuration
      • toReadConfig

        default ReadConfig toReadConfig()
        Returns:
        the read config
      • toWriteConfig

        default WriteConfig toWriteConfig()
        Returns:
        the write config
      • subConfiguration

        default MongoConfig subConfiguration​(java.lang.String prefix)
        Gets all configurations starting with a prefix.

        Note: The prefix will be removed from the keys in the resulting configuration.

        Parameters:
        prefix - for the configuration options that should be returned
        Returns:
        the configuration options that started with the prefix
      • containsKey

        default boolean containsKey​(java.lang.String key)
        Returns true if this map contains a mapping for the specified key.
        Parameters:
        key - key whose presence in this map is to be tested
        Returns:
        true if this map contains a mapping for the specified key
      • get

        default java.lang.String get​(java.lang.String key)
        Returns the value to which the specified key is mapped
        Parameters:
        key - the key whose associated value is to be returned. The key match is case-insensitive.
        Returns:
        the value to which the specified key is mapped or null.
      • getOrDefault

        default java.lang.String getOrDefault​(java.lang.String key,
                                              java.lang.String defaultValue)
        Returns the value to which the specified key is mapped, or defaultValue if this config contains no mapping for the key.

        Note: The key match is case-insensitive.

        Parameters:
        key - the key whose associated value is to be returned
        defaultValue - the default mapping for the config
        Returns:
        the value to which the specified key is mapped, or defaultValue if this config contains no mapping for the key or the mapping returns null. The key match is case-insensitive.
        Throws:
        java.lang.ClassCastException - if the key is of an inappropriate type for this map
      • getBoolean

        default boolean getBoolean​(java.lang.String key,
                                   boolean defaultValue)
        Returns the boolean value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
        Parameters:
        key - the key whose associated value is to be returned
        defaultValue - the default mapping for the config
        Returns:
        the boolean value to which the specified key is mapped, or defaultValue if there is no mapping for the key. The key match is case-insensitive.
        Throws:
        java.lang.IllegalArgumentException - if the specified key cannot be converted into a valid boolean
      • getInt

        default int getInt​(java.lang.String key,
                           int defaultValue)
        Returns the int value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
        Parameters:
        key - the key whose associated value is to be returned
        defaultValue - the default mapping for the config
        Returns:
        the integer value to which the specified key is mapped, or defaultValue if there is no mapping for the key. The key match is case-insensitive.
        Throws:
        java.lang.NumberFormatException - if the specified key cannot be converted into a valid int
      • getLong

        default long getLong​(java.lang.String key,
                             long defaultValue)
        Returns the long value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
        Parameters:
        key - the key whose associated value is to be returned
        defaultValue - the default mapping for the config
        Returns:
        the long value to which the specified key is mapped, or defaultValue if there is no mapping for the key. The key match is case-insensitive.
        Throws:
        java.lang.NumberFormatException - if the specified key cannot be converted into a valid long
      • getDouble

        default double getDouble​(java.lang.String key,
                                 double defaultValue)
        Returns the double value to which the specified key is mapped, or defaultValue if there is no mapping for the key.
        Parameters:
        key - the key whose associated value is to be returned
        defaultValue - the default mapping for the config
        Returns:
        the double value to which the specified key is mapped, or defaultValue if there is no mapping for the key. The key match is case-insensitive.
        Throws:
        java.lang.NumberFormatException - if the specified key cannot be converted into a valid double
      • getList

        default java.util.List<java.lang.String> getList​(java.lang.String key,
                                                         java.util.List<java.lang.String> defaultValue)
        Returns a list of strings from a comma delimited string to which the specified key is mapped, or defaultValue if there is no mapping for the key.
        Parameters:
        key - the key whose associated value is to be returned
        defaultValue - the default mapping for the config
        Returns:
        a list of strings to which the specified key is mapped, or defaultValue if there is no mapping for the key. The key match is case-insensitive.
      • getComment

        @Nullable
        default @Nullable org.bson.BsonString getComment()
        Returns:
        the comment to be associated with an operation or null if not set