<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-nar</artifactId><version>2.2.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></parentNar><systemApiVersion>2.0.0</systemApiVersion><buildInfo><tag>rel/nifi-2.2.0</tag><branch>main</branch><revision>1</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.mongodb.DeleteMongo</name><type>PROCESSOR</type><description>Executes a delete query against a MongoDB collection. The query is provided in the body of the flowfile and the user can select whether it will delete one or many documents that match it.</description><tags><tag>delete</tag><tag>mongo</tag><tag>mongodb</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>delete-mongo-delete-mode</name><displayName>Delete Mode</displayName><description>Choose between deleting one document by query or many documents by query.</description><defaultValue>one</defaultValue><allowableValues><allowableValue><displayName>Delete One</displayName><value>one</value><description>Delete only the first document that matches the query.</description></allowableValue><allowableValue><displayName>Delete Many</displayName><value>many</value><description>Delete every document that matches the query.</description></allowableValue><allowableValue><displayName>Use 'mongodb.delete.mode' attribute</displayName><value>attr</value><description>Read the 'mongodb.delete.mode attribute and use that mode. Acceptable values are 'many' and 'one.'</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>delete-mongo-fail-on-no-delete</name><displayName>Fail When Nothing Is Deleted</displayName><description>Determines whether to send the flowfile to the success or failure relationship if nothing is successfully deleted.</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>true</value><description>Fail when no documents are deleted.</description></allowableValue><allowableValue><displayName>False</displayName><value>false</value><description>Do not fail when nothing is deleted.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>All FlowFiles that cannot be written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>mongodb.delete.mode</name><description>Configurable parameter for controlling delete mode on a per-flowfile basis. The process must be configured to use this option. Acceptable values are 'one' and 'many.'</description></readsAttribute></readsAttributes><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.GetMongo</name><type>PROCESSOR</type><description>Creates FlowFiles from documents in MongoDB loaded by a user-specified query.</description><tags><tag>mongodb</tag><tag>read</tag><tag>get</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>json-type</name><displayName>JSON Type</displayName><description>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.</description><defaultValue>Extended</defaultValue><allowableValues><allowableValue><displayName>Extended JSON</displayName><value>Extended</value><description>Use MongoDB's "extended JSON". This is the JSON generated with toJson() on a MongoDB Document from the Java driver</description></allowableValue><allowableValue><displayName>Standard JSON</displayName><value>Standard</value><description>Generate a JSON document that conforms to typical JSON conventions instead of Mongo-specific conventions.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>use-pretty-printing</name><displayName>Pretty Print Results JSON</displayName><description>Choose whether or not to pretty print the JSON from the results of the query. Choosing 'True' can greatly increase the space requirements on disk depending on the complexity of the JSON document</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-charset</name><displayName>Character Set</displayName><description>Specifies the character set of the document data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Query</name><displayName>Query</displayName><description>The selection criteria to do the lookup. If the field is left blank, it will look for input from an incoming connection from another processor to provide the query as a valid JSON document inside of the FlowFile's body. If this field is left blank and a timer is enabled instead of an incoming connection, that will result in a full collection fetch using a "{}" query.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-query-attribute</name><displayName>Query Output Attribute</displayName><description>If set, the query will be written to a specified attribute on the output flowfiles.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Projection</name><displayName>Projection</displayName><description>The fields to be returned from the documents in the result set; must be a valid BSON document</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Sort</name><displayName>Sort</displayName><description>The fields by which to sort; must be a valid BSON document</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Limit</name><displayName>Limit</displayName><description>The maximum number of elements to return</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Size</name><displayName>Batch Size</displayName><description>The number of elements to be returned from the server in one batch</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>results-per-flowfile</name><displayName>Results Per FlowFile</displayName><description>How many results to put into a FlowFile at once. The whole body will be treated as a JSON array of results.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-date-format</name><displayName>Date Format</displayName><description>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.</description><defaultValue>yyyy-MM-dd'T'HH:mm:ss'Z'</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>get-mongo-send-empty</name><displayName>Send Empty Result</displayName><description>If a query executes successfully, but returns no results, send an empty JSON document signifying no result.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>failure</name><description>All input FlowFiles that are part of a failed query execution go here.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>All FlowFiles that have the results of a successful query execution go here.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>All input FlowFiles that are part of a successful query execution go here.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mongo.database.name</name><description>The database where the results came from.</description></writesAttribute><writesAttribute><name>mongo.collection.name</name><description>The collection where the results came from.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.GetMongoRecord</name><type>PROCESSOR</type><description>A record-based version of GetMongo that uses the Record writers to write the MongoDB result set.</description><tags><tag>mongo</tag><tag>mongodb</tag><tag>get</tag><tag>fetch</tag><tag>record</tag><tag>json</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>get-mongo-record-writer-factory</name><displayName>Record Writer</displayName><description>The record writer to use to write the result sets.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongodb-schema-name</name><displayName>Schema Name</displayName><description>The name of the schema in the configured schema registry to use for the query results.</description><defaultValue>${schema.name}</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-query-attribute</name><displayName>Query Output Attribute</displayName><description>If set, the query will be written to a specified attribute on the output flowfiles.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Query</name><displayName>Query</displayName><description>The selection criteria to do the lookup. If the field is left blank, it will look for input from an incoming connection from another processor to provide the query as a valid JSON document inside of the FlowFile's body. If this field is left blank and a timer is enabled instead of an incoming connection, that will result in a full collection fetch using a "{}" query.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Projection</name><displayName>Projection</displayName><description>The fields to be returned from the documents in the result set; must be a valid BSON document</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Sort</name><displayName>Sort</displayName><description>The fields by which to sort; must be a valid BSON document</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Limit</name><displayName>Limit</displayName><description>The maximum number of elements to return</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Size</name><displayName>Batch Size</displayName><description>The number of elements to be returned from the server in one batch</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>failure</name><description>All input FlowFiles that are part of a failed query execution go here.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>All FlowFiles that have the results of a successful query execution go here.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>All input FlowFiles that are part of a successful query execution go here.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mongo.database.name</name><description>The database where the results came from.</description></writesAttribute><writesAttribute><name>mongo.collection.name</name><description>The collection where the results came from.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.PutMongo</name><type>PROCESSOR</type><description>Writes the contents of a FlowFile to MongoDB</description><tags><tag>mongodb</tag><tag>insert</tag><tag>update</tag><tag>write</tag><tag>put</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mode</name><displayName>Mode</displayName><description>Indicates whether the processor should insert or update content</description><defaultValue>insert</defaultValue><allowableValues><allowableValue><displayName>insert</displayName><value>insert</value><description></description></allowableValue><allowableValue><displayName>update</displayName><value>update</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Upsert</name><displayName>Upsert</displayName><description>When true, inserts a document if no document matches the update query criteria; this property is valid only when using update mode, otherwise it is ignored</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>update</dependentValue></dependentValues></dependency></dependencies></property><property><name>Update Query Key</name><displayName>Update Query Key</displayName><description>One or more comma-separated document key names used to build the update query criteria, such as _id</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>update</dependentValue></dependentValues></dependency></dependencies></property><property><name>putmongo-update-query</name><displayName>Update Query</displayName><description>Specify a full MongoDB query to be used for the lookup query to do an update/upsert. NOTE: this field is ignored if the 'Update Query Key' value is not empty.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>update</dependentValue></dependentValues></dependency></dependencies></property><property><name>put-mongo-update-mode</name><displayName>Update Mode</displayName><description>Choose an update mode. You can either supply a JSON document to use as a direct replacement or specify a document that contains update operators like $set, $unset, and $inc. When Operators mode is enabled, the flowfile content is expected to be the operator part for example: {$set:{"key": "value"},$inc:{"count":1234}} and the update query will come from the configured Update Query property.</description><defaultValue>doc</defaultValue><allowableValues><allowableValue><displayName>With whole document</displayName><value>doc</value><description></description></allowableValue><allowableValue><displayName>With operators enabled</displayName><value>operators</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>Mode</propertyName><propertyDisplayName>Mode</propertyDisplayName><dependentValues><dependentValue>update</dependentValue></dependentValues></dependency></dependencies></property><property><name>Update Method</name><displayName>Update Method</displayName><description>MongoDB method for running collection update operations, such as updateOne or updateMany</description><defaultValue>one</defaultValue><allowableValues><allowableValue><displayName>Update One</displayName><value>one</value><description>Updates only the first document that matches the query.</description></allowableValue><allowableValue><displayName>Update Many</displayName><value>many</value><description>Updates every document that matches the query.</description></allowableValue><allowableValue><displayName>Use 'mongodb.update.mode' FlowFile attribute.</displayName><value>flowfile-attribute</value><description>Use the value of the 'mongodb.update.mode' attribute of the incoming FlowFile. Acceptable values are 'one' and 'many'.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>put-mongo-update-mode</propertyName><propertyDisplayName>Update Mode</propertyDisplayName><dependentValues><dependentValue>operators</dependentValue></dependentValues></dependency></dependencies></property><property><name>Character Set</name><displayName>Character Set</displayName><description>The Character Set in which the data is encoded</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>All FlowFiles that cannot be written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>mongo.put.update.match.count</name><description>The match count from result if update/upsert is performed, otherwise not set.</description></writesAttribute><writesAttribute><name>mongo.put.update.modify.count</name><description>The modify count from result if update/upsert is performed, otherwise not set.</description></writesAttribute><writesAttribute><name>mongo.put.upsert.id</name><description>The '_id' hex value if upsert is performed, otherwise not set.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>An instance of this component can cause high usage of this system resource.  Multiple instances or high concurrency settings may result a degradation of performance.</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.mongodb.PutMongoBulkOperations</name><type>PROCESSOR</type><description>Writes the contents of a FlowFile to MongoDB as bulk-update</description><tags><tag>mongodb</tag><tag>insert</tag><tag>update</tag><tag>write</tag><tag>put</tag><tag>bulk</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Ordered</name><displayName>Ordered</displayName><description>Ordered execution of bulk-writes and break on error - otherwise arbitrary order and continue on error</description><defaultValue>true</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Character Set</name><displayName>Character Set</displayName><description>The Character Set in which the data is encoded</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>All FlowFiles that cannot be written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement><systemResourceConsiderations><systemResourceConsideration><resource>MEMORY</resource><description>An instance of this component can cause high usage of this system resource.  Multiple instances or high concurrency settings may result a degradation of performance.</description></systemResourceConsideration></systemResourceConsiderations></extension><extension><name>org.apache.nifi.processors.mongodb.PutMongoRecord</name><type>PROCESSOR</type><description>This processor is a record-aware processor for inserting/upserting data into MongoDB. It uses a configured record reader and schema to read an incoming record set from the body of a flowfile and then inserts/upserts batches of those records into a configured MongoDB collection. This processor does not support deletes. The number of documents to insert/upsert at a time is controlled by the "Batch Size" configuration property. This value should be set to a reasonable size to ensure that MongoDB is not overloaded with too many operations at once.</description><tags><tag>mongodb</tag><tag>insert</tag><tag>update</tag><tag>upsert</tag><tag>record</tag><tag>put</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>record-reader</name><displayName>Record Reader</displayName><description>Specifies the Controller Service to use for parsing incoming data and determining the data's schema</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>insert_count</name><displayName>Batch Size</displayName><description>The number of records to group together for one single insert/upsert operation against MongoDB.</description><defaultValue>100</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>ordered</name><displayName>Ordered</displayName><description>Perform ordered or unordered operations</description><defaultValue>False</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>bypass-validation</name><displayName>Bypass Validation</displayName><description>        Enable or disable bypassing document schema validation during insert or update operations.
        Bypassing document validation is a Privilege Action in MongoDB.
        Enabling this property can result in authorization errors for users with limited privileges.
</description><defaultValue>False</defaultValue><allowableValues><allowableValue><displayName>True</displayName><value>True</value><description></description></allowableValue><allowableValue><displayName>False</displayName><value>False</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>update-key-fields</name><displayName>Update Key Fields</displayName><description>Comma separated list of fields based on which to identify documents that need to be updated. If this property is set NiFi will attempt an upsert operation on all documents. If this property is not set all documents will be inserted.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>update-mode</name><displayName>Update Mode</displayName><description>Choose between updating a single document or multiple documents per incoming record.</description><defaultValue>one</defaultValue><allowableValues><allowableValue><displayName>Update One</displayName><value>one</value><description>Updates only the first document that matches the query.</description></allowableValue><allowableValue><displayName>Update Many</displayName><value>many</value><description>Updates every document that matches the query.</description></allowableValue><allowableValue><displayName>Use 'mongodb.update.mode' FlowFile attribute.</displayName><value>flowfile-attribute</value><description>Use the value of the 'mongodb.update.mode' attribute of the incoming FlowFile. Acceptable values are 'one' and 'many'.</description></allowableValue></allowableValues><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><dependencies><dependency><propertyName>update-key-fields</propertyName><propertyDisplayName>Update Key Fields</propertyDisplayName></dependency></dependencies></property></properties><relationships><relationship><name>success</name><description>All FlowFiles that are written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>All FlowFiles that cannot be written to MongoDB are routed to this relationship</description><autoTerminated>false</autoTerminated></relationship></relationships><readsAttributes><readsAttribute><name>mongodb.update.mode</name><description>Configurable parameter for controlling update mode on a per-flowfile basis. Acceptable values are 'one' and 'many' and controls whether a single incoming record should update a single or multiple Mongo documents.</description></readsAttribute></readsAttributes><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.RunMongoAggregation</name><type>PROCESSOR</type><description>A processor that runs an aggregation query whenever a flowfile is received.</description><tags><tag>mongo</tag><tag>aggregation</tag><tag>aggregate</tag></tags><properties><property><name>mongo-client-service</name><displayName>Client Service</displayName><description>If configured, this property will use the assigned client service for connection pooling.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Database Name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Mongo Collection Name</name><displayName>Mongo Collection Name</displayName><description>The name of the collection to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-charset</name><displayName>Character Set</displayName><description>Specifies the character set of the document data.</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-agg-query</name><displayName>Query</displayName><description>The aggregation query to be executed.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>allow-disk-use</name><displayName>Allow Disk Use</displayName><description>Set this to true to enable writing data to temporary files to prevent exceeding the maximum memory use limit during aggregation pipeline staged when handling large datasets.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>json-type</name><displayName>JSON Type</displayName><description>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.</description><defaultValue>Extended</defaultValue><allowableValues><allowableValue><displayName>Extended JSON</displayName><value>Extended</value><description>Use MongoDB's "extended JSON". This is the JSON generated with toJson() on a MongoDB Document from the Java driver</description></allowableValue><allowableValue><displayName>Standard JSON</displayName><value>Standard</value><description>Generate a JSON document that conforms to typical JSON conventions instead of Mongo-specific conventions.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-query-attribute</name><displayName>Query Output Attribute</displayName><description>If set, the query will be written to a specified attribute on the output flowfiles.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Batch Size</name><displayName>Batch Size</displayName><description>The number of elements returned from the server in one batch.</description><defaultValue>100</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>results-per-flowfile</name><displayName>Results Per FlowFile</displayName><description>How many results to put into a flowfile at once. The whole body will be treated as a JSON array of results.</description><defaultValue>1</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-date-format</name><displayName>Date Format</displayName><description>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.</description><defaultValue>yyyy-MM-dd'T'HH:mm:ss'Z'</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>failure</name><description>The input flowfile gets sent to this relationship when the query fails.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The input flowfile gets sent to this relationship when the query succeeds.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>results</name><description>The result set of the aggregation will be sent to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_ALLOWED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.gridfs.DeleteGridFS</name><type>PROCESSOR</type><description>Deletes a file from GridFS using a file name or a query.</description><tags><tag>gridfs</tag><tag>delete</tag><tag>mongodb</tag></tags><properties><property><name>gridfs-client-service</name><displayName>Client Service</displayName><description>The MongoDB client service to use for database connections.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-database-name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-bucket-name</name><displayName>Bucket Name</displayName><description>The GridFS bucket where the files will be stored. If left blank, it will use the default value 'fs' that the MongoDB client driver uses.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-file-name</name><displayName>File Name</displayName><description>The name of the file in the bucket that is the target of this processor. GridFS file names do not include path information because GridFS does not sort files into folders within a bucket.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>delete-gridfs-query</name><displayName>Query</displayName><description>A valid MongoDB query to use to find and delete one or more files from GridFS.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-query-attribute</name><displayName>Query Output Attribute</displayName><description>If set, the query will be written to a specified attribute on the output flowfiles.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>success</name><description>When the operation succeeds, the flowfile is sent to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>When there is a failure processing the flowfile, it goes to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.gridfs.FetchGridFS</name><type>PROCESSOR</type><description>Retrieves one or more files from a GridFS bucket by file name or by a user-defined query.</description><tags><tag>fetch</tag><tag>gridfs</tag><tag>mongo</tag></tags><properties><property><name>gridfs-client-service</name><displayName>Client Service</displayName><description>The MongoDB client service to use for database connections.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-database-name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-bucket-name</name><displayName>Bucket Name</displayName><description>The GridFS bucket where the files will be stored. If left blank, it will use the default value 'fs' that the MongoDB client driver uses.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-file-name</name><displayName>File Name</displayName><description>The name of the file in the bucket that is the target of this processor.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-query</name><displayName>Query</displayName><description>A valid MongoDB query to use to fetch one or more files from GridFS.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-query-attribute</name><displayName>Query Output Attribute</displayName><description>If set, the query will be written to a specified attribute on the output flowfiles.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>mongo-operation-mode</name><displayName>Operation Mode</displayName><description>This option controls when results are made available to downstream processors. If Stream Query Results is enabled, provenance will not be tracked relative to the input flowfile if an input flowfile is received and starts the query. In Stream Query Results mode errors will be handled by sending a new flowfile with the original content and attributes of the input flowfile to the failure relationship. Streaming should only be used if there is reliable connectivity between MongoDB and NiFi.</description><defaultValue>all-at-once</defaultValue><allowableValues><allowableValue><displayName>Full Query Fetch</displayName><value>all-at-once</value><description>Fetch the entire query result and then make it available to downstream processors.</description></allowableValue><allowableValue><displayName>Stream Query Results</displayName><value>streaming</value><description>As soon as the query start sending results to the downstream processors at regular intervals.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>failure</name><description>When there is a failure processing the flowfile, it goes to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>When the operation succeeds, the flowfile is sent to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original input flowfile goes to this relationship if the query does not cause an error</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>gridfs.file.metadata</name><description>The custom metadata stored with a file is attached to this property if it exists.</description></writesAttribute></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.mongodb.gridfs.PutGridFS</name><type>PROCESSOR</type><description>Writes a file to a GridFS bucket.</description><tags><tag>mongo</tag><tag>gridfs</tag><tag>put</tag><tag>file</tag><tag>store</tag></tags><properties><property><name>gridfs-client-service</name><displayName>Client Service</displayName><description>The MongoDB client service to use for database connections.</description><controllerServiceDefinition><className>org.apache.nifi.mongodb.MongoDBClientService</className><groupId>org.apache.nifi</groupId><artifactId>nifi-mongodb-client-service-api-nar</artifactId><version>2.2.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-database-name</name><displayName>Mongo Database Name</displayName><description>The name of the database to use</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-bucket-name</name><displayName>Bucket Name</displayName><description>The GridFS bucket where the files will be stored. If left blank, it will use the default value 'fs' that the MongoDB client driver uses.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>gridfs-file-name</name><displayName>File Name</displayName><description>The name of the file in the bucket that is the target of this processor. GridFS file names do not include path information because GridFS does not sort files into folders within a bucket.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putgridfs-properties-prefix</name><displayName>File Properties Prefix</displayName><description>Attributes that have this prefix will be added to the file stored in GridFS as metadata.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putgridfs-enforce-uniqueness</name><displayName>Enforce Uniqueness</displayName><description>When enabled, this option will ensure that uniqueness is enforced on the bucket. It will do so by creating a MongoDB index that matches your selection. It should ideally be configured once when the bucket is created for the first time because it could take a long time to build on an existing bucket wit a lot of data.</description><defaultValue>none</defaultValue><allowableValues><allowableValue><displayName>None</displayName><value>none</value><description>No uniqueness will be enforced.</description></allowableValue><allowableValue><displayName>Both</displayName><value>both</value><description>Both the filename and hash must be unique.</description></allowableValue><allowableValue><displayName>Name</displayName><value>name</value><description>Only the filename must be unique.</description></allowableValue><allowableValue><displayName>Hash</displayName><value>hash</value><description>Only the file hash must be unique.</description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putgridfs-hash-attribute</name><displayName>Hash Attribute</displayName><description>If uniquness enforcement is enabled and the file hash is part of the constraint, this must be set to an attribute that exists on all incoming flowfiles.</description><defaultValue>hash.value</defaultValue><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>putgridfs-chunk-size</name><displayName>Chunk Size</displayName><description>Controls the maximum size of each chunk of a file uploaded into GridFS.</description><defaultValue>256 KB</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>duplicate</name><description>Flowfiles that fail the duplicate check are sent to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>When the operation succeeds, the flowfile is sent to this relationship.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>failure</name><description>When there is a failure processing the flowfile, it goes to this relationship.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension></extensions></extensionManifest>