# 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 35

### Methods

#### close()

Close the client and release its resources

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

#### 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 632

##### 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 842

##### 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 908

##### 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 932

##### 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 1025

##### 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 1051

##### 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 885

##### 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 977

##### 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 351

##### 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 375

##### 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 424

##### 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 450

##### 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 583

##### 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 609

##### 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 530

##### 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 558

##### 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 476

##### 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 504

##### 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 399

##### 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 863

##### 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 102

##### 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 128

##### 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 954

##### 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 655

##### 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 772

##### 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 678

##### 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 726

##### 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 820

##### 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 749

##### 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 796

##### 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 702

##### 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 252

##### 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 276

##### 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 328

##### 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 303

##### 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 1000

##### 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 51

##### 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 77

##### 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 152

##### 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 176

##### 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 226

##### 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 201

##### Returns:

Type
  MongoClient