MongoDB Adapter Reference
Note regarding PAS Kubernetes: If you want to use the MongoDB that comes with your PAS installation, you need dedicated credentials. Please contact our support and request your credentials.
Extension 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 | |
Replica Set | Specifies a replica set name. | ||
Database | Specifies the default database to be used. | ||
Collection | Specifies the default collection to be used. | ||
Use transactions with Replica Sets | 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. | 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. | ||
Authentication Database | Specifies the defaultauthdb option, the authentication database to be used if user and password are provided. | ||
Authentication Source | Specifies the authSource option, the database name that is associated with the provided credentials. | ||
Authenication Mechanism | Specifies the authMechanism option, the authentication mechanism to be used to authenticate the connection. | ||
Authentication Mechanism Properties | 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: | |
TLS | |||
Enable TLS | Specifies the tls option, used to enable/disable TLS. | true | Enable TLS. |
false | Disable TLS (default). | ||
Certificate Key File | Specifies the tlsCertificateKeyFile option, the path to a | ||
Key File Password | Specifies the tlsCertificateKeyFilePassword option, the password to decrypt the certificate file. | ||
CA File | Specifies the tlsCAFile option, the path to a | ||
Allow Invalid Certificates | Specifies the tlsAllowInvalidCertificates option, used to allow invalid certificates. | true | Bypass certifiate validation. |
false | Validate the certificate presented by the database instance (default). | ||
Allow Invalid Hostnames | 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). | ||
Incecure TLS | Specifies the tlsInsecure option. | true | Disable TLS various certificate validations. Refer to the MongoDB manual for details. |
false | Validate TLS certificates (default). | ||
Timeout | |||
Connect Timeout (milliseconds) | Specifies the connectTimeoutMS option, the time in milliseconds a connection is attempted before it times out. | any positive integer | |
30000 | default | ||
Socket Timeout (milliseconds) | 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 | ||
Compression | |||
Compressor | Specifies the compressors option, the compressor to be used for network communication. | zlib | Use zlib compression. |
none | No compression. | ||
zlib Compression Level | Specifies the zlibCompressionLevel option, compression level if zlib compression is used. | -1 | zlib default |
0 | no compression | ||
1-9 | compression level | ||
Pooling | |||
Max. Pool Size | Specifies the maxPoolSize option, the maximum number of connections in the connection pool. | any positive integer | |
100 | default | ||
Wait Queue Timeout (milliseconds) | 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 | |||
Acknowledgement Propagation (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 | 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. | ||
Write Concern Timeout (milliseconds) | Specifies the wtimeoutMS option, the time limit for the write concern in milliseconds. | any positive integer | |
30000 | default | ||
Acknowledge Write | 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). | ||
Read Concern Level | Specifies the readConcernLevel option. Refer to the MongoDB manual for more details. | One of: local (default), majority, linearizable, available, snapshot | |
Read Preference | Specifies the readPreference option. Refer to the MongoDB manual for more details. | One of: primary (default), primaryPreferred, secondary, secondaryPreferred, nearest | |
Max. Staleness (seconds) | 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 | ||
Read Preference Tags | Specifies the readPreferenceTags option. | ||
Server selection & discovery | |||
Local Threshold (milliseconds) | Specifies the localThresholdMS option. | any positive integer | |
15 | default | ||
Server Selection Timeout (milliseconds) | Specifies the serverSelectionTimeoutMS option. | any positive integer | |
30000 | default | ||
Heartberat Frequency (milliseconds) | Specifies the heartbeatFrequencyMS option. | any positive integer | |
10000 | default | ||
Misc | |||
Retryable Reads | Specifies the retryReads option. This option enables retryable reads. | true | Retry reads (default). |
false | Do not retry reads. | ||
Retryable Writes | Specifies the retryWrites option. This option enables retryable writes. | true | Retry writes (default) |
false | Do not retry writes. |
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. |
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 | 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 | 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 | 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 | 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 | 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:
| |
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
|
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 | 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 |
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 |
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
See also JSON Adapter and JSON Adapter Reference.
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 | 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 In contrast to classToJSON(), writeTypeDiscriminator defaults to false for | 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.
Related Content
Related Documentation: