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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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