|
MongoDB
2.1.1-pre-
|
A basic connection to the database. More...
#include <dbclient.h>
Public Member Functions | |
| DBClientConnection (bool _autoReconnect=false, DBClientReplicaSet *cp=0, double so_timeout=0) | |
| virtual bool | connect (const char *hostname, string &errmsg) |
| Connect to a Mongo database server. | |
| virtual bool | connect (const HostAndPort &server, string &errmsg) |
| Connect to a Mongo database server. | |
| void | connect (const string &serverHostname) |
| Connect to a Mongo database server. | |
| virtual bool | auth (const string &dbname, const string &username, const string &pwd, string &errmsg, bool digestPassword=true, Auth::Level *level=NULL) |
| Authorize access to a particular database. | |
| virtual auto_ptr< DBClientCursor > | query (const string &ns, Query query=Query(), int nToReturn=0, int nToSkip=0, const BSONObj *fieldsToReturn=0, int queryOptions=0, int batchSize=0) |
| send a query to the database. | |
| unsigned long long | query (boost::function< void(const BSONObj &)> f, const string &ns, Query query, const BSONObj *fieldsToReturn=0, int queryOptions=0) |
| Uses QueryOption_Exhaust Exhaust mode sends back all data queries as fast as possible, with no back-and-for for OP_GETMORE. | |
| unsigned long long | query (boost::function< void(DBClientCursorBatchIterator &)> f, const string &ns, Query query, const BSONObj *fieldsToReturn=0, int queryOptions=0) |
| virtual bool | runCommand (const string &dbname, const BSONObj &cmd, BSONObj &info, int options=0) |
| Run a database command. | |
| bool | isFailed () const |
| MessagingPort & | port () |
| string | toStringLong () const |
| string | toString () |
| Returns the address of the server. | |
| string | getServerAddress () const |
| virtual void | killCursor (long long cursorID) |
| virtual bool | callRead (Message &toSend, Message &response) |
| virtual void | say (Message &toSend, bool isRetry=false, string *actualServer=0) |
| virtual bool | recv (Message &m) |
| virtual void | checkResponse (const char *data, int nReturned, bool *retry=NULL, string *host=NULL) |
| virtual bool | call (Message &toSend, Message &response, bool assertOk=true, string *actualServer=0) |
| actualServer is set to the actual server where they call went if there was a choice (SlaveOk) | |
|
virtual ConnectionString::ConnectionType | type () const |
| void | setSoTimeout (double to) |
| double | getSoTimeout () const |
| virtual bool | lazySupported () const |
Static Public Member Functions | |
| static int | getNumConnections () |
| static void | setLazyKillCursor (bool lazy) |
| static bool | getLazyKillCursor () |
Protected Member Functions | |
| virtual void | sayPiggyBack (Message &toSend) |
| void | _checkConnection () |
| void | checkConnection () |
| bool | _connect (string &errmsg) |
Protected Attributes | |
| DBClientReplicaSet * | clientSet |
| boost::scoped_ptr< MessagingPort > | p |
| boost::scoped_ptr< SockAddr > | server |
| bool | _failed |
| const bool | autoReconnect |
| time_t | lastReconnectTry |
| HostAndPort | _server |
| string | _serverString |
|
map< string, pair< string, string > > | authCache |
| double | _so_timeout |
Static Protected Attributes | |
| static AtomicUInt | _numConnections |
| static bool | _lazyKillCursor = true |
Friends | |
| class | SyncClusterConnection |
A basic connection to the database.
This is the main entry point for talking to a simple Mongo setup
| mongo::DBClientConnection::DBClientConnection | ( | bool | _autoReconnect = false, |
| DBClientReplicaSet * | cp = 0, |
||
| double | so_timeout = 0 |
||
| ) | [inline] |
| _autoReconnect | if true, automatically reconnect on a connection failure |
| cp | used by DBClientReplicaSet. You do not need to specify this parameter |
| timeout | tcp timeout in seconds - this is for read/write, not connect. Connect timeout is fixed, but short, at 5 seconds. |
| bool mongo::DBClientConnection::auth | ( | const string & | dbname, |
| const string & | username, | ||
| const string & | pwd, | ||
| string & | errmsg, | ||
| bool | digestPassword = true, |
||
| Auth::Level * | level = NULL |
||
| ) | [virtual] |
Authorize access to a particular database.
Authentication is separate for each database on the server -- you may authenticate for any number of databases on a single connection. The "admin" database is special and once authenticated provides access to all databases on the server.
| digestPassword | if password is plain text, set this to true. otherwise assumed to be pre-digested | |
| [out] | authLevel | level of authentication for the given user |
Reimplemented from mongo::DBClientWithCommands.
| virtual bool mongo::DBClientConnection::connect | ( | const char * | hostname, |
| string & | errmsg | ||
| ) | [inline, virtual] |
Connect to a Mongo database server.
If autoReconnect is true, you can try to use the DBClientConnection even when
false was returned -- it will try to connect again.
@param serverHostname host to connect to. can include port number ( 127.0.0.1 , 127.0.0.1:5555 )
If you use IPv6 you must add a port number ( ::1:27017 )
@param errmsg any relevant error message will appended to the string
| bool mongo::DBClientConnection::connect | ( | const HostAndPort & | server, |
| string & | errmsg | ||
| ) | [virtual] |
Connect to a Mongo database server.
If autoReconnect is true, you can try to use the DBClientConnection even when false was returned -- it will try to connect again.
| server | server to connect to. |
| errmsg | any relevant error message will appended to the string |
| void mongo::DBClientConnection::connect | ( | const string & | serverHostname | ) | [inline] |
Connect to a Mongo database server.
Exception throwing version. Throws a UserException if cannot connect.
If autoReconnect is true, you can try to use the DBClientConnection even when false was returned -- it will try to connect again.
| serverHostname | host to connect to. can include port number ( 127.0.0.1 , 127.0.0.1:5555 ) |
| bool mongo::DBClientConnection::isFailed | ( | ) | const [inline, virtual] |
Implements mongo::DBClientBase.
| virtual auto_ptr<DBClientCursor> mongo::DBClientConnection::query | ( | const string & | ns, |
| Query | query = Query(), |
||
| int | nToReturn = 0, |
||
| int | nToSkip = 0, |
||
| const BSONObj * | fieldsToReturn = 0, |
||
| int | queryOptions = 0, |
||
| int | batchSize = 0 |
||
| ) | [inline, virtual] |
send a query to the database.
| ns | namespace to query, format is <dbname>.<collectname>[.<collectname>]* |
| query | query to perform on the collection. this is a BSONObj (binary JSON) You may format as { query: { ... }, orderby: { ... } } to specify a sort order. |
| nToReturn | n to return (i.e., limit). 0 = unlimited |
| nToSkip | start with the nth item |
| fieldsToReturn | optional template of which fields to select. if unspecified, returns all fields |
| queryOptions | see options enum at top of this file |
| AssertionException |
Reimplemented from mongo::DBClientBase.
| unsigned long long mongo::DBClientConnection::query | ( | boost::function< void(const BSONObj &)> | f, |
| const string & | ns, | ||
| Query | query, | ||
| const BSONObj * | fieldsToReturn = 0, |
||
| int | queryOptions = 0 |
||
| ) |
Uses QueryOption_Exhaust Exhaust mode sends back all data queries as fast as possible, with no back-and-for for OP_GETMORE.
If you are certain you will exhaust the query, it could be useful.
Use DBClientCursorBatchIterator version if you want to do items in large blocks, perhaps to avoid granular locking and such.
| bool mongo::DBClientConnection::runCommand | ( | const string & | dbname, |
| const BSONObj & | cmd, | ||
| BSONObj & | info, | ||
| int | options = 0 |
||
| ) | [inline, virtual] |
Run a database command.
Database commands are represented as BSON objects. Common database commands have prebuilt helper functions -- see below. If a helper is not available you can directly call runCommand.
| dbname | database name. Use "admin" for global administrative commands. |
| cmd | the command object to execute. For example, { ismaster : 1 } |
| info | the result object the database returns. Typically has { ok : ..., errmsg : ... } fields set. |
| options | see enum QueryOptions - normally not needed to run a command |
Reimplemented from mongo::DBClientWithCommands.
1.8.0