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

### Methods

#### close()

Close the client and release its resources

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

##### Returns:

Type
  MongoClient