# Class: MongoClient

## vertx-mongo-js/mongo_client~ MongoClient

#### new MongoClient()

A Vert.x service used to interact with MongoDB server instances.

Source:
  - vertx-mongo-js/mongo_client.js, line 38

### Methods

#### bulkWrite(collection, operations, resultHandler) → {MongoClient}

Execute a bulk operation. Can insert, update, replace, and/or delete multiple documents with one request.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`operations` | Array.<Object> | the operations to execute
`resultHandler` | function | will be called with a MongoClientBulkWriteResult when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 354

##### Returns:

Type
  MongoClient

#### bulkWriteWithOptions(collection, operations, bulkWriteOptions, resultHandler) → {MongoClient}

Execute a bulk operation with the specified write options. Can insert, update, replace, and/or delete multiple documents with one request.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`operations` | Array.<Object> | the operations to execute
`bulkWriteOptions` | Object | the write options
`resultHandler` | function | will be called with a MongoClientBulkWriteResult when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 379

##### Returns:

Type
  MongoClient

#### close()

Close the client and release its resources

Source:
  - vertx-mongo-js/mongo_client.js, line 1122

#### count(collection, query, resultHandler) → {MongoClient}

Count matching documents in a collection.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`resultHandler` | function | will be provided with the number of matching documents

Source:
  - vertx-mongo-js/mongo_client.js, line 683

##### Returns:

Type
  MongoClient

#### createCollection(collectionName, resultHandler) → {MongoClient}

Create a new collection

##### Parameters:

Name | Type | Description
--- | --- | ---
`collectionName` | string | the name of the collection
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 893

##### Returns:

Type
  MongoClient

#### createIndex(collection, key, resultHandler) → {MongoClient}

Creates an index.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`key` | Object | A document that contains the field and value pairs where the field is the index key and the value describes the type of index for that field. For an ascending index on a field, specify a value of 1; for descending index, specify a value of -1.
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 959

##### Returns:

Type
  MongoClient

#### createIndexWithOptions(collection, key, options, resultHandler) → {MongoClient}

Creates an index.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`key` | Object | A document that contains the field and value pairs where the field is the index key and the value describes the type of index for that field. For an ascending index on a field, specify a value of 1; for descending index, specify a value of -1.
`options` | Object | the options for the index
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 983

##### Returns:

Type
  MongoClient

#### distinct(collection, fieldName, resultClassname, resultHandler) → {MongoClient}

Gets the distinct values of the specified field name. Return a JsonArray containing distinct values (eg: [ 1 , 89 ])

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`fieldName` | string | the field name
`resultClassname` | string |
`resultHandler` | function | will be provided with array of values.

Source:
  - vertx-mongo-js/mongo_client.js, line 1076

##### Returns:

Type
  MongoClient

#### distinctBatch(collection, fieldName, resultClassname, resultHandler) → {MongoClient}

Gets the distinct values of the specified field name. This method use batchCursor for returning each found value. Each value is a json fragment with fieldName key (eg: {"num": 1}).

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`fieldName` | string | the field name
`resultClassname` | string |
`resultHandler` | function | will be provided with each found value

Source:
  - vertx-mongo-js/mongo_client.js, line 1102

##### Returns:

Type
  MongoClient

#### dropCollection(collection, resultHandler) → {MongoClient}

Drop a collection

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 936

##### Returns:

Type
  MongoClient

#### dropIndex(collection, indexName, resultHandler) → {MongoClient}

Drops the index given its name.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`indexName` | string | the name of the index to remove
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 1028

##### Returns:

Type
  MongoClient

#### find(collection, query, resultHandler) → {MongoClient}

Find matching documents in the specified collection

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`resultHandler` | function | will be provided with list of documents

Source:
  - vertx-mongo-js/mongo_client.js, line 402

##### Returns:

Type
  MongoClient

#### findBatch(collection, query, resultHandler) → {MongoClient}

Find matching documents in the specified collection. This method use batchCursor for returning each found document.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`resultHandler` | function | will be provided with each found document

Source:
  - vertx-mongo-js/mongo_client.js, line 426

##### Returns:

Type
  MongoClient

#### findBatchWithOptions(collection, query, options, resultHandler) → {MongoClient}

Find matching documents in the specified collection, specifying options. This method use batchCursor for returning each found document.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`options` | Object | options to configure the find
`resultHandler` | function | will be provided with each found document

Source:
  - vertx-mongo-js/mongo_client.js, line 475

##### Returns:

Type
  MongoClient

#### findOne(collection, query, fields, resultHandler) → {MongoClient}

Find a single matching document in the specified collection

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`fields` | Object | the fields
`resultHandler` | function | will be provided with the document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 501

##### Returns:

Type
  MongoClient

#### findOneAndDelete(collection, query, resultHandler) → {MongoClient}

Find a single matching document in the specified collection and delete it.

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`resultHandler` | function | will be provided with the deleted document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 634

##### Returns:

Type
  MongoClient

#### findOneAndDeleteWithOptions(collection, query, findOptions, resultHandler) → {MongoClient}

Find a single matching document in the specified collection and delete it.

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`findOptions` | Object | options to configure the find
`resultHandler` | function | will be provided with the deleted document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 660

##### Returns:

Type
  MongoClient

#### findOneAndReplace(collection, query, replace, resultHandler) → {MongoClient}

Find a single matching document in the specified collection and replace it.

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`replace` | Object | the replacement document
`resultHandler` | function | will be provided with the document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 581

##### Returns:

Type
  MongoClient

#### findOneAndReplaceWithOptions(collection, query, replace, findOptions, updateOptions, resultHandler) → {MongoClient}

Find a single matching document in the specified collection and replace it.

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`replace` | Object | the replacement document
`findOptions` | Object | options to configure the find
`updateOptions` | Object | options to configure the update
`resultHandler` | function | will be provided with the document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 609

##### Returns:

Type
  MongoClient

#### findOneAndUpdate(collection, query, update, resultHandler) → {MongoClient}

Find a single matching document in the specified collection and update it.

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`update` | Object | used to describe how the documents will be updated
`resultHandler` | function | will be provided with the document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 527

##### Returns:

Type
  MongoClient

#### findOneAndUpdateWithOptions(collection, query, update, findOptions, updateOptions, resultHandler) → {MongoClient}

Find a single matching document in the specified collection and update it.

This operation might change _id field of query parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | the query used to match the document
`update` | Object | used to describe how the documents will be updated
`findOptions` | Object | options to configure the find
`updateOptions` | Object | options to configure the update
`resultHandler` | function | will be provided with the document, if any

Source:
  - vertx-mongo-js/mongo_client.js, line 555

##### Returns:

Type
  MongoClient

#### findWithOptions(collection, query, options, resultHandler) → {MongoClient}

Find matching documents in the specified collection, specifying options

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`options` | Object | options to configure the find
`resultHandler` | function | will be provided with list of documents

Source:
  - vertx-mongo-js/mongo_client.js, line 450

##### Returns:

Type
  MongoClient

#### getCollections(resultHandler) → {MongoClient}

Get a list of all collections in the database.

##### Parameters:

Name | Type | Description
--- | --- | ---
`resultHandler` | function | will be called with a list of collections.

Source:
  - vertx-mongo-js/mongo_client.js, line 914

##### Returns:

Type
  MongoClient

#### insert(collection, document, resultHandler) → {MongoClient}

Insert a document in the specified collection

This operation might change _id field of document parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`document` | Object | the document
`resultHandler` | function | result handler will be provided with the id if document didn't already have one

Source:
  - vertx-mongo-js/mongo_client.js, line 105

##### Returns:

Type
  MongoClient

#### insertWithOptions(collection, document, writeOption, resultHandler) → {MongoClient}

Insert a document in the specified collection with the specified write option

This operation might change _id field of document parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`document` | Object | the document
`writeOption` | Object | the write option to use
`resultHandler` | function | result handler will be provided with the id if document didn't already have one

Source:
  - vertx-mongo-js/mongo_client.js, line 131

##### Returns:

Type
  MongoClient

#### listIndexes(collection, resultHandler) → {MongoClient}

Get all the indexes in this collection.

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 1005

##### Returns:

Type
  MongoClient

#### remove(collection, query, resultHandler) → {MongoClient}

Remove matching documents from a collection

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 706

##### Returns:

Type
  MongoClient

#### removeDocument(collection, query, resultHandler) → {MongoClient}

Remove a single matching document from a collection and return the handler with MongoClientDeleteResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match document
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 823

##### Returns:

Type
  MongoClient

#### removeDocuments(collection, query, resultHandler) → {MongoClient}

Remove matching documents from a collection and return the handler with MongoClientDeleteResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 729

##### Returns:

Type
  MongoClient

#### removeDocumentsWithOptions(collection, query, writeOption, resultHandler) → {MongoClient}

Remove matching documents from a collection with the specified write option and return the handler with MongoClientDeleteResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`writeOption` | Object | the write option to use
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 777

##### Returns:

Type
  MongoClient

#### removeDocumentWithOptions(collection, query, writeOption, resultHandler) → {MongoClient}

Remove a single matching document from a collection with the specified write option and return the handler with MongoClientDeleteResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match document
`writeOption` | Object | the write option to use
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 871

##### Returns:

Type
  MongoClient

#### removeOne(collection, query, resultHandler) → {MongoClient}

Remove a single matching document from a collection

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match document
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 800

##### Returns:

Type
  MongoClient

#### removeOneWithOptions(collection, query, writeOption, resultHandler) → {MongoClient}

Remove a single matching document from a collection with the specified write option

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match document
`writeOption` | Object | the write option to use
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 847

##### Returns:

Type
  MongoClient

#### removeWithOptions(collection, query, writeOption, resultHandler) → {MongoClient}

Remove matching documents from a collection with the specified write option

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match documents
`writeOption` | Object | the write option to use
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 753

##### Returns:

Type
  MongoClient

#### replace(collection, query, replace, resultHandler) → {MongoClient}

Replace matching documents in the specified collection

This operation might change _id field of replace parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`replace` | Object | all matching documents will be replaced with this
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 255

##### Returns:

Type
  MongoClient

#### replaceDocuments(collection, query, replace, resultHandler) → {MongoClient}

Replace matching documents in the specified collection and return the handler with MongoClientUpdateResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`replace` | Object | all matching documents will be replaced with this
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 279

##### Returns:

Type
  MongoClient

#### replaceDocumentsWithOptions(collection, query, replace, options, resultHandler) → {MongoClient}

Replace matching documents in the specified collection, specifying options and return the handler with MongoClientUpdateResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`replace` | Object | all matching documents will be replaced with this
`options` | Object | options to configure the replace
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 331

##### Returns:

Type
  MongoClient

#### replaceWithOptions(collection, query, replace, options, resultHandler) → {MongoClient}

Replace matching documents in the specified collection, specifying options

This operation might change _id field of replace parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`replace` | Object | all matching documents will be replaced with this
`options` | Object | options to configure the replace
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 306

##### Returns:

Type
  MongoClient

#### runCommand(commandName, command, resultHandler) → {MongoClient}

Run an arbitrary MongoDB command.

##### Parameters:

Name | Type | Description
--- | --- | ---
`commandName` | string | the name of the command
`command` | Object | the command
`resultHandler` | function | will be called with the result.

Source:
  - vertx-mongo-js/mongo_client.js, line 1051

##### Returns:

Type
  MongoClient

#### save(collection, document, resultHandler) → {MongoClient}

Save a document in the specified collection

This operation might change _id field of document parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`document` | Object | the document
`resultHandler` | function | result handler will be provided with the id if document didn't already have one

Source:
  - vertx-mongo-js/mongo_client.js, line 54

##### Returns:

Type
  MongoClient

#### saveWithOptions(collection, document, writeOption, resultHandler) → {MongoClient}

Save a document in the specified collection with the specified write option

This operation might change _id field of document parameter

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`document` | Object | the document
`writeOption` | Object | the write option to use
`resultHandler` | function | result handler will be provided with the id if document didn't already have one

Source:
  - vertx-mongo-js/mongo_client.js, line 80

##### Returns:

Type
  MongoClient

#### update(collection, query, update, resultHandler) → {MongoClient}

Update matching documents in the specified collection

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`update` | Object | used to describe how the documents will be updated
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 155

##### Returns:

Type
  MongoClient

#### updateCollection(collection, query, update, resultHandler) → {MongoClient}

Update matching documents in the specified collection and return the handler with MongoClientUpdateResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`update` | Object | used to describe how the documents will be updated
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 179

##### Returns:

Type
  MongoClient

#### updateCollectionWithOptions(collection, query, update, options, resultHandler) → {MongoClient}

Update matching documents in the specified collection, specifying options and return the handler with MongoClientUpdateResult result

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`update` | Object | used to describe how the documents will be updated
`options` | Object | options to configure the update
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 229

##### Returns:

Type
  MongoClient

#### updateWithOptions(collection, query, update, options, resultHandler) → {MongoClient}

Update matching documents in the specified collection, specifying options

##### Parameters:

Name | Type | Description
--- | --- | ---
`collection` | string | the collection
`query` | Object | query used to match the documents
`update` | Object | used to describe how the documents will be updated
`options` | Object | options to configure the update
`resultHandler` | function | will be called when complete

Source:
  - vertx-mongo-js/mongo_client.js, line 204

##### Returns:

Type
  MongoClient