Class MongoReader
java.lang.Object
com.northconcepts.datapipeline.core.DataObject
com.northconcepts.datapipeline.core.Endpoint
com.northconcepts.datapipeline.core.DataEndpoint
com.northconcepts.datapipeline.core.DataReader
com.northconcepts.datapipeline.internal.lang.IntegrationReader
com.northconcepts.datapipeline.mongodb.MongoReader
Reads documents from a MongoDB database collection.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
Fields inherited from class com.northconcepts.datapipeline.core.DataReader
fieldLineage, recordLineageFields inherited from class com.northconcepts.datapipeline.core.DataEndpoint
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYFields inherited from class com.northconcepts.datapipeline.core.Endpoint
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEFields inherited from class com.northconcepts.datapipeline.core.DataObject
id, log, name, TIMESTAMP_FORMAT -
Constructor Summary
ConstructorsConstructorDescriptionMongoReader(String database, String collection) Connects to the MongoDB server in localhost on the default port 27017.MongoReader(MongoClient client, String database, String collection) Connects to the MongoDB server as specified in MongoClient. -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.voidclose()Indicates that this endpoint has finished reading or writing.getQuery()Gets the JSON style query string.
Output format:
(e.g.booleanIndicates if the MongoDB client should be closed when this reader closes (defaults to false).booleanIndicates if the document "_id" property should be removed from the resulting records (defaults to true).voidopen()Makes this endpoint ready for reading or writing.protected RecordreadImpl()Overridden by subclasses to read the next record from thisDataReader.setAutoCloseConnection(boolean closeConnection) Indicates if the MongoDB client should be closed when this reader closes (defaults to false).Set the JSON style query.
(e.g.Set the JSON style query.
(e.g.setRemoveDocumentId(boolean removeDocumentId) Indicates if the document "_id" property should be removed from the resulting records (defaults to true).Methods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, available, getBufferSize, getNestedEndpoint, getNestedReader, getReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skipMethods inherited from class com.northconcepts.datapipeline.core.DataEndpoint
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringMethods inherited from class com.northconcepts.datapipeline.core.Endpoint
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
-
Constructor Details
-
MongoReader
Connects to the MongoDB server in localhost on the default port 27017.- Parameters:
database- name of the database to be used.collection- name of the collection to be used.
-
MongoReader
Connects to the MongoDB server as specified in MongoClient. Use this to connect to non-default host and port.- Parameters:
client- the MongoClient instance.database- name of the database to be used.collection- name of the collection to be used.
-
-
Method Details
-
setQuery
Set the JSON style query.
(e.g. "{<field>: <value>}", "{<field>: {$in: [<value>, <value>]}}")
Example:
{"name": {$regex: "Cafe"}} - returns documents containing "Cafe" in the field "name".
See MongoDB manual for more information.
Default query is all documents ("{}"). Default is used if jsonQuery is not set, is null or empty.
Must be set before opening the MongoReader to take effect. Otherwise default is used.- Parameters:
query- the JSON style query string.
-
setQuery
Set the JSON style query.
(e.g. "{<field>: <value>}", "{<field>: {$in: [<value>, <value>]}}")
Example:
{"name": {$regex: "Cafe"}} - returns documents containing "Cafe" in the field "name".
See MongoDB manual for more information.
Default query is all documents ("{}"). Default is used if jsonQuery is not set, is null or empty.
Must be set before opening the MongoReader to take effect. Otherwise default is used.- Parameters:
query- the JSON query as a Record.- See Also:
-
getQuery
Gets the JSON style query string.
Output format:
(e.g. "{<field>: <value>}", "{<field>: {$in: [<value>, <value>]}}")
See MongoDB manual for more information.- Returns:
- the JSON query
-
isAutoCloseConnection
public boolean isAutoCloseConnection()Indicates if the MongoDB client should be closed when this reader closes (defaults to false). -
setAutoCloseConnection
Indicates if the MongoDB client should be closed when this reader closes (defaults to false). -
isRemoveDocumentId
public boolean isRemoveDocumentId()Indicates if the document "_id" property should be removed from the resulting records (defaults to true). -
setRemoveDocumentId
Indicates if the document "_id" property should be removed from the resulting records (defaults to true). -
readImpl
Description copied from class:DataReaderOverridden by subclasses to read the next record from thisDataReader. The default implementation ofDataReader.read()now insures that this method will not be called again after it returns anull.If no record is available,
nullwill be returned.Contract for subclasses (see also
docs/authoring/DataReader.md):- Return
nullexactly once to signal end-of-stream. - Do not call this method directly —
DataReader.read()is the template method that wraps exceptions, increments the record count, and tracks lineage. - Do not call
DataEndpoint.incrementRecordCount()here;DataReader.read()already does. - Throw raw exceptions;
DataReader.read()wraps them viaexception(throwable).
- Specified by:
readImplin classDataReader- Throws:
Throwable
- Return
-
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classIntegrationReader- Throws:
DataException
-
close
Description copied from class:DataEndpointIndicates that this endpoint has finished reading or writing.- Overrides:
closein classDataEndpoint- Throws:
DataException
-
addExceptionProperties
Description copied from class:EndpointAdds this endpoint's current state to aDataException. Since this method is called whenever an exception is thrown, subclasses should override it to add their specific information.- Overrides:
addExceptionPropertiesin classDataReader
-