Skip to main content
Skip table of contents

MongoDB Adapter Reference

Stereotype Attributes

MongoDB Alias

The settings on the MongoDBAlias are used to build the MongoDB connection string and to set database connection options. Each alias will create a separate connection pool. For each request, the xUML Runtime will use one connection from this pool for the entire request duration.

To use the MongoDB adapter it is helpful if you are familiar with the MongoDB options. Each listed tagged value is setting the MongoDB option having the same name.
Please refer to the MongoDB manual for more information on each option.

Attribute

Description

Allowed Values / Examples

Name

Specify a name for the alias.

any string

Standard

protocol

Specifies the protocol to be used with this connection.

mongodb

Use the standard MongoDB connection protocol (default).

mongodb+srv

Use DNS seed list.

hosts

Specifies a list of MongoDB host with optional ports (one list entry per line).

scheer-acme.com
db.scheer-acme.com:2701

replicaSet

Specifies a replica set name.

database

Specifies the default database to be used.

collection

Specifies the default collection to be used.

xUMLRuntimeUseTransactions

Specifies whether to use automatic transactions with replica sets. If enabled, the xUML Runtime will apply the transaction concepts as documented on xUML Runtime Transaction Concepts.

Transactions can only be enabled when using replica sets. Also, some options like read/write concerns make it impossible to use transactions. If a conflict can be detected, the Runtime refuses to start.
Use with caution, and refer to the MongoDB manual for more information.

true

Use automatic transactions on replica sets.

false

Do not use automatic transactions on replica sets (default).

Authentication

user

Specifies the database user (if the database requires authentication). If the user contains characters that MongoDB has defined as to be illegal, they will be converted correctly to percent encoding.

password

Specifies the password of user (if the database requires authentication). If the password contains characters that MongoDB has defined as to be illegal, they will be converted correctly to percent encoding.

defaultauthdb

Specifies the defaultauthdb option, the authentication database to be used if user and password are provided.

authSource

Specifies the authSource option, the database name that is associated with the provided credentials.

authMechanism

Specifies the authMechanism option, the authentication mechanism to be used to authenticate the connection.

authMechanismProperties

Specifies the authMechanismProperties option, the properties of the specified authMechanism as a comma-separated list of colon-separated key-value pairs.

CANNONICALIZE_HOST_NAME:true,AWS_SESSION_TOKEN:FQoGZXIvYXdzEN...

Compression

compressors

Specifies the compressors option, the compressor to be used for network communication.

zlib

Use zlib compression.

none

No compression.

zlibCompressionLevel

Specifies the zlibCompressionLevel option, compression level if zlib compression is used.

-1

zlib default

0

no compression

1-9

compression level

Misc

retryReads

Specifies the retryReads option. This option enables retryable reads.

true

Retry reads (default).

false

Do not retry reads.

retryWrites

Specifies the retryWrites option. This option enables retryable writes.

true

Retry writes (default)

false

Do not retry writes.

Pooling

maxPoolSize

Specifies the maxPoolSize option, the maximum number of connections in the connection pool.

any positive integer

100

default

waitQueueTimeoutMS

Specifies the waitQueueTimeoutMS option, the maximum wait time for a client connection to become available from the pool.

any positive integer

30000

default

Read/write

w

Specifies the w option. This option requests acknowlegdement that a write operation has been propagated to the specified number of MongoDB instances or MongoDB instances with specific tags.

a positive integer
(default 1)

Acknowledge propagation to the given number of databases.

majority

Acknowledge propagation to the majority of databases.

a tag set

Acknowledge propagation to the databases with the specified tags.

wtimeoutMS

Specifies the wtimeoutMS option, the time limit for the write concern in milliseconds.

any positive integer

30000

default

journal

Specifies the journal option. This option requests acknowlegdement from the database that the write operation has been written to the journal.

true

Request acknowlegdement for write operations.

false

No acknowlegdement of write operations (default).

readConcernLevel

Specifies the readConcernLevel option. Refer to the MongoDB manual for more details.

One of: local (default), majority, linearizable, available, snapshot

readPreference

Specifies the readPreference option. Refer to the MongoDB manual for more details.

One of: primary (default), primaryPreferred, secondary, secondaryPreferred, nearest

maxStalenessSeconds

Specifies the maxStalenessSeconds option, how stale a secondary can be before the client stops using it for read operations.

any positive integer >= 90

-1

default

readPreferenceTags

Specifies the readPreferenceTags option.

Server selection & discovery

localThresholdMS

Specifies the localThresholdMS option.

any positive integer

15

default

serverSelectionTimeoutMS

Specifies the serverSelectionTimeoutMS option.

any positive integer

30000

default

heartbeatFrequencyMS

Specifies the heartbeatFrequencyMS option.

any positive integer

10000

default

Timeout

connectTimeoutMS

Specifies the connectTimeoutMS option, the time in milliseconds a connection is attempted before it times out.

any positive integer

30000

default

socketTimeoutMS

Specifies the socketTimeoutMS option, the time in milliseconds a send or receive is attempted on a socket before it times out.

any positive integer

30000

default

TLS

tls

Specifies the tls option, used to enable/disable TLS.

true

Enable TLS.

false

Disable TLS (default).

tlsCertificateKeyFile

Specifies the tlsCertificateKeyFile option, the path to a .pem file that contains either the TLS/SSL X.509 certificate of the client, or the client's TLS/SSL certificate and key.

tlsCertificateKeyFilePassword

Specifies the tlsCertificateKeyFilePassword option, the password to decrypt the certificate file.

tlsCAFile

Specifies the tlsCAFile option, the path to a .pem file that contains the root certificate chain of the certificate authority. This file is used to validate the certificate presented by the database instance.

tlsAllowInvalidCertificates

Specifies the tlsAllowInvalidCertificates option, used to allow invalid certificates.

true

Bypass certifiate validation.

false

Validate the certificate presented by the database instance (default).

tlsAllowInvalidHostnames

Specifies the tlsAllowInvalidHostnames option, used to disable hostname validation.

true

Do not validate the hostname of the certificate presented by the database instance.

false

Validate the hostname of the certificate presented by the database instance (default).

tlsInsecure

Specifies the tlsInsecure option.

true

Disable TLS various certificate validations. Refer to the MongoDB manual for details.

false

Validate TLS certificates (default).

MongoDB Adapter

Attribute

Description

Allowed Values

alias

Specify the MongoDB alias resp. the database the adapter should use to establish the connection.

a valid MongoDB alias

database

Overwrite the database given in the alias.

collection

Overwrite the collection given in the alias.

action

The adapter action derives from the used operation. Do not configure this.

MongoDB Adapter Operations

aggregate Operations

  • aggregate ( database : String, collection : String, pipeline : String[], handle : MongoDBHandle )

  • aggregate ( database : String, collection : String, pipeline : String[], result: String[] )

  • aggregate ( database : String, collection : String, pipeline : String[], result: Any[] )

Name

Type

Direction

Description

database

String

in

Name of the database you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

collection

String

in

Name of the collection you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

pipeline

Array of String

in

Pipeline you want to use with aggregation. Each array element must be a MongDB pipeline step as valid JSON.

handle

MongoDBHandle

out

Handle to a result set. You can use fetch to get documents from this result set.

result

Array of String

Array of all resulting documents in JSON format.

out

Result set as an array. Depending on the array element specified on this parameter, the resulting documents are either presented in extended JSON format (String), or serialized into xUML model structures (<document class>).

Array of <document class>

Array of objects of an xUML class representing the document structure.

delete Operation

  • delete ( queryString : String, database : String, collection : String, rowsAffected : Integer )

Name

Type

Direction

Description

Allowed Values / Examples

queryString

String

in

MongoDB JSON query string.

In contrast to the MongoDB shell, the JSON keys must be quoted properly.

MongoDB query string as valid JSON

database

String

in

Name of the database you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

collection

String

in

Name of the collection you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

rowsAffected

Integer

out

Returns how many rows have been affected by the MongoDB operation.

This information may be unavailable depending on the acknowledgement settings on the MongoDB Alias . If the Runtime cannot retrieve this information,  rowsAffected  will be NULL.

fetch Operations

  • fetch ( handle : MongoDBHandle, result: String[] )

  • fetch ( handle : MongoDBHandle, result: Any[] )

Name

Type

Direction

Description

handle

MongoDBHandle

in

Handle to a result set that has been created by a find operation.

result

String

Resulting document in JSON format.

out

Fetched document. Depending on the type specified on this parameter, the resulting document is either presented in extended JSON format (String), or serialized into  model structures (<document class>).

<document class>

Objects of an xUML class representing the document structure.

find Operations

  • find ( queryString : String, options : MongoDBFindOptions, database : String, collection : String, handle : MongoDBHandle )

  • find ( queryString : String, options : MongoDBFindOptions, database : String, collection : String, result: String[] )

  • find ( queryString : String, options : MongoDBFindOptions, database : String, collection : String, result: Any[] )

Name

Type

Direction

Description

Allowed Values / Examples

queryString

String

in

MongoDB JSON query string.

In contrast to the MongoDB shell, the JSON keys must be quoted properly.

MongoDB query string as valid JSON

options

MongoDBFindOptions

in

MongoDB options for find.

database

String

in

Name of the database you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

collection

String

in

Name of the collection you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

result

Array of String

Array of all resulting documents in JSON format.

out

Result set as an array. Depending on the array element specified on this parameter, the resulting documents are either presented in extended JSON format (String), or serialized into xUML model structures (<document class>).

Array of <document class>

Array of objects of an xUML class representing the document structure.

handle

MongoDBHandle

out

Handle to a result set. You can use fetch to get documents from this result set.

insert Operations

  • insert ( document: Any, database : String, collection : String )

  • insert ( documents: Any[], database : String,  collection : String )

Name

Type

Direction

Description

document

<document class>

in

A data structure representing the document you want to insert. The data structure will be serialized.

documents

Array of <document class>

in

Array of documents you want to insert. Each array element is treated as a single document parameter and all of them will be inserted.

database

String

in

Name of the database you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

collection

String

in

Name of the collection you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

replace Operation

  • replace ( document : Any, queryString : String, options : MongoDBOptions, database : String, collection : String, rowsAffected : Integer )

Name

Type

Direction

Description

Allowed Values / Examples

document

Any <document class>

in

A data structure representing the document you want to replace the selected document with. The old stored document will be replaced by the new one, the MongoDB _id, however, will not change.

queryString

String

in

MongoDB JSON query string.

In contrast to the MongoDB shell, the JSON keys must be quoted properly.

MongoDB query string as valid JSON

options

MongoDBReplaceOptions

in

MongoDB options for replace.

database

String

in

Name of the database you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

collection

String

in

Name of the collection you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

rowsAffected

Integer

out

Returns how many rows have been affected by the MongoDB operation.

This information may be unavailable depending on the acknowledgement settings on the MongoDB Alias . If the Runtime cannot retrieve this information,  rowsAffected  will be NULL.

update Operations

  • update ( updateString : String, queryString : String, options : MongoDBOptions, nullifications : String[], removals : String[], database : String, collection : String, rowsAffected : Integer )

  • update ( pipeline : String[], queryString : String, options : MongoDBOptions, nullifications : String[], removals : String[], database : String, collection : String, rowsAffected : Integer )

  • update (  document : Any, queryString : String, options : MongoDBOptions, nullifications : String[], removals : String[], database : String, collection : String, rowsAffected : Integer )

Name

Type

Direction

Description

Allowed Values / Examples

document

Any <document class>

in

A data structure representing the document you want to insert. For this, the following rules apply:

  • unset top-level fields will be skipped

  • complex fields will be replaced entirely

updateString

String

in

MongoDB JSON update string.

In contrast to the MongoDB shell, the JSON keys must be quoted properly.

Refer to Querying MongoDB for a comprehensive explanation of how to build an update string and the implications.

MongoDB update string as valid JSON

CODE
{ "$set": {
      "address": {
            "city": "Dallas"
      }
}

{ "$set": {
      "address.city": "Dallas"
      }
}

pipeline

Array of Strings

in

Pipeline you want to use with update.

Each array element must be a MongDB pipeline step as valid JSON.

queryString

String

in

MongoDB JSON query string.

In contrast to the MongoDB shell, the JSON keys must be quoted properly.

MongoDB query string as valid JSON

options

MongoDBReplaceOptions

in

MongoDB options for replace.

nullifications

Array of Strings

in

An array of database fields to be set to NULL upon update.

The elements of the path to the field within the corresponding document are to be separated by a dot (see examples). You can use arrays with that notation (see example) only if  arrayFilters  have been provided with the MongoDB update options.

customer.address
customer.address.street
customer.phoneArray.$[elem].number

removals

Array of Strings

in

An array of database fields to be removed upon update.

The elements of the path to the field within the corresponding document are to be separated by a dot (see examples). You can use arrays with that notation (see example) only if  arrayFilters  have been provided with the MongoDB update options.

customer.address
customer.address.street
customer.phoneArray.$[elem].number

database

String

in

Name of the database you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

collection

String

in

Name of the collection you want to access. This overwrites the setting on the MongoDB Alias and MongoDB Adapter.

rowsAffected

Integer

out

Returns how many rows have been affected by the MongoDB operation.

This information may be unavailable depending on the acknowledgement settings on the MongoDB Alias . If the Runtime cannot retrieve this information,  rowsAffected  will be NULL.

MongoDB Adapter Parameter Types

MongoDBFindOptions

Name

Type

Description

Allowed Values / Examples

limit

Integer

Limits the number of returned documents.

any integer between -231 and 231

skip

Integer

Specifies the number of documents to skip in the result set (counted from the beginning).

any positive integer

projection

String

An aggregation document that projects the results accordingly. It defines the final shape of the returned documents.

valid JSON

sort

String

A sort document.

valid JSON

MongoDBHandle

Name

Type

Description

id

Integer

ID of the MongoDB handle.

MongoDBReplaceOptions

Name

Type

Description

Allowed Values / Examples

upsert

Boolean

Specifies if the document should be inserted if no document matches the query.

true

Insert document.

false

Do nothing.

MongoDBUpdateOptions

Name

Type

Description

Allowed Values / Examples

upsert

Boolean

Specifies if the document should be inserted if no document matches the query

true

Insert document.

false

Do nothing.

arrayFilters

Array of String

Sets conditions for the filtered positional operators during the update.

array of filter document as valid JSON strings

ExtendedJSONComposerOptions

Name

Type

Description

Allowed Values / Examples

format

String

Use format to specify which kind of Extended JSON should be produced: canonical or relaxed Extended JSON.

canonical

Produce canonical Extended JSON (default).

relaxed

Produce relaxed Extended JSON.

keepNulls

Boolean

When keepNulls is true, attributes of anObject with NULL values will be rendered to the Extended JSON object, otherwise they will be left out completely (see also chapter NULL Values). The default behavior of classToJson() (i.e. when called without options) is equivalent to keepNulls=false.

true

Render NULL attributes to the Extended JSON string.

false

Leave out NULL attributes (default).

writeTypeDiscriminator

Boolean

Use writeTypeDiscriminator to suppress the generation of xUML type properties ("e2e:type") to the generated JSON. If this option is true, the Runtime will write the original xUML type to the generated JSON in form of "e2e:type": "<name of the original xUML type>" if the type being serialized does not match the expected metadata. This is necessary if you want to convert the generated Extended JSON back to an xUML class using extendedJSONToClass().

In contrast to classToJSON(), writeTypeDiscriminator defaults to false for classToExtendedJson().

true

Write xUML type discriminator.

false

Do not write xUML type discriminator (default).

MongoDBAdapter_CustomerData_Example

Click here to download a simple example model that shows the usage of the MongoDB adapter in Scheer PAS Designer.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.