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
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 ~Connection();
Destroys the Connection.
Member Functions
address
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
void connect();