# Poco::MongoDB

# class Database

Library: MongoDB
Package: MongoDB
Header: Poco/MongoDB/Database.h

## Description

Database is a helper class for creating requests. MongoDB works with collection names and uses the part before the first dot as the name of the database.

## Member Summary

Member Functions: authCR, authSCRAM, authenticate, count, createCommand, createCountRequest, createDeleteRequest, createInsertRequest, createQueryRequest, createUpdateRequest, ensureIndex, getLastError, getLastErrorDoc

## Constructors

### Database

explicit Database(
const std::string & name
);

Creates a Database for the database with the given name.

## Destructor

### ~Database

virtual ~Database();

Destroys the Database.

## Member Functions

### authenticate

bool authenticate(
Connection & connection,
const std::string & username,
const std::string & password,
const std::string & method = AUTH_SCRAM_SHA1
);

Authenticates against the database using the given connection, username and password, as well as authentication method.

"MONGODB-CR" (default prior to MongoDB 3.0) and "SCRAM-SHA-1" (default starting in 3.0) are the only supported authentication methods.

Returns true if authentication was successful, otherwise false.

May throw a Poco::ProtocolException if authentication fails for a reason other than invalid credentials.

### count

Int64 count(
Connection & connection,
const std::string & collectionName
) const;

Sends a count request for the given collection to MongoDB.

If the command fails, -1 is returned.

### createCommand

Poco::SharedPtr < Poco::MongoDB::QueryRequest > createCommand() const;

Creates a QueryRequest for a command.

### createCountRequest

Poco::SharedPtr < Poco::MongoDB::QueryRequest > createCountRequest(
const std::string & collectionName
) const;

Creates a QueryRequest to count the given collection. The collectionname must not contain the database name.

### createDeleteRequest

Poco::SharedPtr < Poco::MongoDB::DeleteRequest > createDeleteRequest(
const std::string & collectionName
) const;

Creates a DeleteRequest to delete documents in the given collection. The collectionname must not contain the database name.

### createInsertRequest

Poco::SharedPtr < Poco::MongoDB::InsertRequest > createInsertRequest(
const std::string & collectionName
) const;

Creates an InsertRequest to insert new documents in the given collection. The collectionname must not contain the database name.

### createQueryRequest

Poco::SharedPtr < Poco::MongoDB::QueryRequest > createQueryRequest(
const std::string & collectionName
) const;

Creates a QueryRequest. The collectionname must not contain the database name.

### createUpdateRequest

Poco::SharedPtr < Poco::MongoDB::UpdateRequest > createUpdateRequest(
const std::string & collectionName
) const;

Creates an UpdateRequest. The collectionname must not contain the database name.

### ensureIndex

Poco::MongoDB::Document::Ptr ensureIndex(
Connection & connection,
const std::string & collection,
const std::string & indexName,
Poco::MongoDB::Document::Ptr keys,
bool unique = false,
bool background = false,
int version = 0,
int ttl = 0
);

Creates an index. The document returned is the result of a getLastError call. For more info look at the ensureIndex information on the MongoDB website.

### getLastError

std::string getLastError(
Connection & connection
) const;

Sends the getLastError command to the database and returns the err element from the error document. When err is null, an empty string is returned.

### getLastErrorDoc

Document::Ptr getLastErrorDoc(
Connection & connection
) const;

Sends the getLastError command to the database and returns the error document.

### authCR

bool authCR(
Connection & connection,
const std::string & username,
const std::string & password
);

### authSCRAM

bool authSCRAM(
Connection & connection,
const std::string & username,
const std::string & password
);

## Variables

### AUTH_MONGODB_CR

static const std::string AUTH_MONGODB_CR;

Default authentication mechanism prior to MongoDB 3.0.

### AUTH_SCRAM_SHA1

static const std::string AUTH_SCRAM_SHA1;

Default authentication mechanism for MongoDB 3.0.