NAME

MongoDB::Connection - A connection to a Mongo server

SYNOPSIS

The MongoDB::Connection class creates a connection to the MongoDB server.

By default, it connects to a single server running on the local machine listening on the default port:

# connects to localhost:27017
my $connection = MongoDB::Connection->new;

It can connect to a database server running anywhere, though:

my $connection = MongoDB::Connection->new(host => 'example.com', port => 12345);

It can also be used to connect to a replication pair of database servers:

my $connection = MongoDB::Connection->new(left_host => '192.0.2.0', right_host => '192.0.2.1');

If ports aren't given, they default to 27017.

SEE ALSO

Core documentation on connections: http://dochub.mongodb.org/core/connections.

ATTRIBUTES

host

Hostname to connect to. Defaults to localhost.

port

Port to use when connecting. Defaults to 27017.

left_host

Paired connection host to connect to. Can be master or slave.

left_port

Port to use when connecting to left_host. Defaults to 27017.

right_host

Paired connection host to connect to. Can be master or slave.

right_port

Port to use when connecting to right_host. Defaults to 27017.

auto_reconnect

Boolean indicating whether or not to reconnect if the connection is interrupted. Defaults to 1.

auto_connect

Boolean indication whether or not to connect automatically on object construction. Defaults to 1.

METHODS

connect

$connection->connect;

Connects to the mongo server. Called automatically on object construction if auto_connect is true.

database_names

my @dbs = $connection->database_names;

Lists all databases on the mongo server.

get_database ($name)

my $database = $connection->get_database('foo');

Returns a MongoDB::Database instance for database with the given $name.

find_master

$master = $connection->find_master

Determines which host of a paired connection is master. Does nothing for a non-paired connection. This need never be invoked by a user, it is called automatically by internal functions. Returns values:

0

The left host is master

1

The right host is master

-1

Error, master cannot be determined.

authenticate ($dbname, $username, $password, $is_digest?)

$connection->authenticate('foo', 'username', 'secret');

Attempts to authenticate for use of the $dbname database with $username and $password. Passwords are expected to be cleartext and will be automatically hashed before sending over the wire, unless $is_digest is true, which will assume you already did the hashing on yourself.

See also the core documentation on authentication: http://dochub.mongodb.org/core/authentication.

send($str)

my ($insert, $ids) = MongoDB::write_insert('foo.bar', [{name => "joe", age => 40}]);
$conn->send($insert);

Low-level function to send a string directly to the database. Use MongoDB::write_insert, MongoDB::write_update, MongoDB::write_remove, or MongoDB::write_query to create a valid string.

recv(\%info)

my $cursor = $conn->recv({ns => "foo.bar"});

Low-level function to receive a response from the database. Returns a MongoDB::Cursor. At the moment, the only required field for $info is "ns", although "request_id" is likely to be required in the future. The $info hash will be automatically created for you by MongoDB::write_query.

AUTHOR

Kristina Chodorow <kristina@mongodb.org>

1 POD Error

The following errors were encountered while parsing the POD:

Around line 475:

Expected text after =item, not a number