Description and usage of RunMongoAggregation processor:

A processor that runs an aggregation query whenever a flowfile is received.

Tags:

mongo, aggregation, aggregate

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the Expression Language Guide.

Name

Default Value

Allowable Values

Description

Client Service

Controller Service API: 


MongoDBClientService

Implementation: 

MongoDBControllerService


If configured, this property will use the assigned client service for connection pooling.
Mongo URI MongoURI, typically of the form: mongodb://host1[:port1][,host2[:port2],...]

Supports Expression Language: true (will be evaluated using variable registry only)


Mongo Database Name

The name of the database to use

Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)


Mongo Collection Name

The name of the collection to use

Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)


SSL Context Service

Controller Service API: 


SSLContextService

Implementations: 

StandardRestrictedSSLContextService


StandardSSLContextService


The SSL Context Service used to provide client certificate information for TLS/SSL connections.
Client Auth REQUIRED * WANT
* REQUIRED
* NONE
Client authentication policy when connecting to secure (TLS/SSL) cluster. Possible values are REQUIRED, WANT, NONE. This property is only used when an SSL Context has been defined and enabled.

Character Set

UTF-8 Specifies the character set of the document data.

Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)


Query

The aggregation query to be executed.

Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)


JSON Type

Extended * Extended JSON 
* Standard JSON 
By default, MongoDB's Java driver returns "extended JSON". Some of the features of this variant of JSON may cause problems for other JSON parsers that expect only standard JSON types and conventions. This configuration setting controls whether to use extended JSON or provide a clean view that conforms to standard JSON.
Query Output Attribute If set, the query will be written to a specified attribute on the output flowfiles.

Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)


Batch Size 100 The number of elements returned from the server in one batch.
Results Per FlowFile 1 How many results to put into a flowfile at once. The whole body will be treated as a JSON array of results.
Date Format yyyy-MM-dd'T'HH:mm:ss'Z' The date format string to use for formatting Date fields that are returned from Mongo. It is only applied when the JSON output format is set to Standard JSON. Full documentation for format characters can be found here: https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)


Relationships:

Name

Description

results The result set of the aggregation will be sent to this relationship.
failure The input flowfile gets sent to this relationship when the query fails.
original The input flowfile gets sent to this relationship when the query succeeds.

Reads Attributes:

None specified.

Writes Attributes:

None specified.

State management:

This component does not store state.

Restricted:

This component is not restricted.

Input requirement:

This component requires an incoming relationship.

System Resource Considerations:

None specified.

Summary

Description:

This processor runs a MongoDB aggregation query based on user-defined settings. The following is an example of such a query (and what the expected input looks like):

[{
   "$project": {
       "domain": 1
},
  "$group": {
       "_id": { "domain": "$domain" },
       "total": {
         "$sum": 1
     }
 }
}]