Class MongoWriter
java.lang.Object
com.northconcepts.datapipeline.core.DataObject
com.northconcepts.datapipeline.core.Endpoint
com.northconcepts.datapipeline.core.DataEndpoint
com.northconcepts.datapipeline.core.DataWriter
com.northconcepts.datapipeline.internal.lang.IntegrationWriter
com.northconcepts.datapipeline.mongodb.MongoWriter
Writes records to 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.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
ConstructorsConstructorDescriptionMongoWriter(String database, String collection) Connects to the MongoDB server in localhost on the default port 27017.MongoWriter(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.intReturns the number of records inserted together per batch; 1 or less inserts records one at a time (default is -1).booleanIndicates if the MongoDB client should be closed when this writer closes (defaults to false).booleanReturns true if the batch size is greater than 1, so records are inserted in batches.voidopen()Makes this endpoint ready for reading or writing.setAutoCloseConnection(boolean closeConnection) Indicates if the MongoDB client should be closed when this writer closes (defaults to false).setBatchSize(int size) Sets the number of records to chunk together in batch updates.protected voidOverridden by subclasses to write the specified record to thisDataWriter.Methods inherited from class com.northconcepts.datapipeline.core.DataWriter
available, getNestedEndpoint, getNestedWriter, getRootEndpoint, getRootWriter, getWriter, writeMethods 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
-
MongoWriter
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.
-
MongoWriter
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
-
setBatchSize
Sets the number of records to chunk together in batch updates. Updates are not batched if this value is 1 or less. MongoWriter defaults to non batching updates.- Parameters:
size- the number of records to chunk together.
-
getBatchSize
public int getBatchSize()Returns the number of records inserted together per batch; 1 or less inserts records one at a time (default is -1). -
isBatchMode
public boolean isBatchMode()Returns true if the batch size is greater than 1, so records are inserted in batches. -
writeImpl
Description copied from class:DataWriterOverridden by subclasses to write the specified record to thisDataWriter.Contract for subclasses (see also
docs/authoring/DataWriter.md):- Do not call this method directly —
DataWriter.write(Record)is the template method that wraps exceptions, increments the record count, and attaches the offending record to thrownDataExceptions. - Do not call
DataEndpoint.incrementRecordCount()here;DataWriter.write(Record)already does. - Throw raw exceptions;
DataWriter.write(Record)wraps them viaexception(throwable).setRecord(record).
- Specified by:
writeImplin classDataWriter- Throws:
Throwable
- Do not call this method directly —
-
isAutoCloseConnection
public boolean isAutoCloseConnection()Indicates if the MongoDB client should be closed when this writer closes (defaults to false). -
setAutoCloseConnection
Indicates if the MongoDB client should be closed when this writer closes (defaults to false). -
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classIntegrationWriter- 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 classDataWriter
-