Poco::MongoDB

class Connection

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

Description

Represents a connection to a MongoDB server using the MongoDB wire protocol.

See https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/ for more information on the wire protocol.

Member Summary

Member Functions: address, connect, disconnect, readResponse, sendRequest

Nested Classes

class SocketFactory

 more...

Types Aliases

Ptr

using Ptr = Poco::SharedPtr < Connection >;

Constructors

Connection

Connection();

Creates an unconnected Connection.

Use this when you want to connect later on.

Connection

Connection(
    const std::string & hostAndPort
);

Creates a Connection connected to the given MongoDB instance at host:port.

The host and port must be separated with a colon.

Connection

Connection(
    const Poco::Net::SocketAddress & addrs
);

Creates a Connection connected to the given MongoDB instance at the given address.

Connection

Connection(
    const Poco::Net::StreamSocket & socket
);

Creates a Connection connected to the given MongoDB instance using the given socket, which must already be connected.

Connection

Connection(
    const std::string & uri,
    SocketFactory & socketFactory
);

Creates a Connection connected to the given MongoDB instance at the given URI.

See the corresponding connect() method for more information.

Connection

Connection(
    const std::string & host,
    int port
);

Creates a Connection connected to the given MongoDB instance at host and port.

Destructor

~Connection virtual

virtual ~Connection();

Destroys the Connection.

Member Functions

address inline

Poco::Net::SocketAddress address() const;

Returns the address of the MongoDB server.

connect

void connect(
    const std::string & hostAndPort
);

Connects to the given MongoDB server.

The host and port must be separated with a colon.

connect

void connect(
    const std::string & uri,
    SocketFactory & socketFactory
);

Connects to the given MongoDB instance at the given URI.

The URI must be in standard MongoDB connection string URI format:

mongodb://<user>:<password>@hostname.com:<port>/database-name?options

The following options are supported:

  • ssl: If ssl=true is specified, a custom SocketFactory subclass creating a SecureStreamSocket must be supplied.
  • connectTimeoutMS: Socket connection timeout in milliseconds.
  • socketTimeoutMS: Socket send/receive timeout in milliseconds.
  • authMechanism: Authentication mechanism. Only "SCRAM-SHA-1" (default) and "MONGODB-CR" are supported.

Unknown options are silently ignored.

Will also attempt to authenticate using the specified credentials, using Database::authenticate().

Throws a Poco::NoPermissionException if authentication fails.

connect

void connect(
    const std::string & host,
    int port
);

Connects to the given MongoDB server.

connect

void connect(
    const Poco::Net::SocketAddress & addrs
);

Connects to the given MongoDB server.

connect

void connect(
    const Poco::Net::StreamSocket & socket
);

Connects using an already connected socket.

disconnect

void disconnect();

Disconnects from the MongoDB server.

readResponse

void readResponse(
    OpMsgMessage & response
);

Reads additional response data when previous message's flag moreToCome indicates that server will send more data. NOTE: See comments in OpMsgCursor code.

sendRequest

void sendRequest(
    RequestMessage & request
);

Sends a request to the MongoDB server.

Used for one-way requests without a response.

sendRequest

void sendRequest(
    RequestMessage & request,
    ResponseMessage & response
);

Sends a request to the MongoDB server and receives the response.

Use this when a response is expected: only a "query" or "getmore" request will return a response.

sendRequest

void sendRequest(
    OpMsgMessage & request,
    OpMsgMessage & response
);

Sends a request to the MongoDB server and receives the response using newer wire protocol with OP_MSG.

sendRequest

void sendRequest(
    OpMsgMessage & request
);

Sends an unacknowledged request to the MongoDB server using newer wire protocol with OP_MSG. No response is sent by the server.

connect protected

void connect();