NAME
MongoDB::Async::Database - A Mongo Database
VERSION
version 0.503.2
SYNOPSIS
The MongoDB::Async::Database class accesses to a database.
# accesses the foo database
my $db = $connection->foo;
You can also access databases with the "get_database($name)" in MongoDB::Async::Connection method.
NAME
MongoDB::Async::Database - A Mongo database
SEE ALSO
Core documentation on databases: http://dochub.mongodb.org/core/databases.
ATTRIBUTES
name
The name of the database.
METHODS
collection_names
my @collections = $database->collection_names;
Returns the list of collections in this database.
get_collection ($name)
my $collection = $database->get_collection('foo');
Returns a MongoDB::Async::Collection for the collection called $name
within this database.
get_gridfs ($prefix?)
my $grid = $database->get_gridfs;
Returns a MongoDB::Async::GridFS for storing and retrieving files from the database. Default prefix is "fs", making $grid->files
"fs.files" and $grid->chunks
"fs.chunks".
See MongoDB::Async::GridFS for more information.
drop
$database->drop;
Deletes the database.
last_error($options?)
my $err = $db->last_error({w => 2});
Finds out if the last database operation completed successfully. If the last operation did not complete successfully, returns a hash reference of information about the error that occured.
The optional $options
parameter is a hash reference that can contain any of the following:
- w
-
Guarantees that the previous operation will be replicated to
w
servers before this command will return success. SeeMongoDB::Async::Connection::w
for more information. - wtimeout
-
Milliseconds to wait for
w
copies of the data to be made. This parameter should generally be specified, as the database will otherwise wait forever ifw
copies cannot be made. - fsync
-
If true, the database will fsync to disk before returning.
- j
-
If true, awaits the journal commit before returning. If the server is running without journaling, it returns immediately, and successfully.
last_error
returns a hash with fields that vary, depending on what the previous operation was and if it succeeded or failed. If the last operation (before the last_error
call) failed, either:
If err
is null
and ok
is 1, the previous operation succeeded.
The fields in the hash returned can include (but are not limited to):
ok
-
This should almost be 1 (unless
last_error
itself failed). err
-
If this field is non-null, an error occurred on the previous operation. If this field is set, it will be a string describing the error that occurred.
code
-
If a database error occurred, the relevant error code will be passed back to the client.
errmsg
-
This field is set if something goes wrong with a database command. It is coupled with
ok
being 0. For example, ifw
is set and times out,errmsg
will be set to "timed out waiting for slaves" andok
will be 0. If this field is set, it will be a string describing the error that occurred. n
-
If the last operation was an insert, an update or a remove, the number of objects affected will be returned.
wtimeout
-
If the previous option timed out waiting for replication.
waited
-
How long the operation waited before timing out.
wtime
-
If
w
was set and the operation succeeded, how long it took to replicate tow
servers. upserted
-
If an upsert occured, this field will contain the new record's
_id
field. For upserts, either this field orupdatedExisting
will be present (unless an error occurred). updatedExisting
-
If an upsert updated an existing element, this field will be
true
. For upserts, either this field orupserted
will be present (unless an error occurred).
See "w" in MongoDB::Async::Connection for more information.
run_command ($command)
my $result = $database->run_command({ some_command => 1 });
Runs a database command. Returns a string with the error message if the command fails. Returns the result of the command (a hash reference) on success. For a list of possible database commands, run:
my $commands = $db->run_command({listCommands : 1});
There are a few examples of database commands in the "DATABASE COMMANDS" in MongoDB::Async::Examples section.
See also core documentation on database commands: http://dochub.mongodb.org/core/commands.
eval ($code, $args?)
my $result = $database->eval('function(x) { return "hello, "+x; }', ["world"]);
Evaluate a JavaScript expression on the Mongo server. The $code
argument can be a string or an instance of MongoDB::Async::Code. The $args
are an optional array of arguments to be passed to the $code
function.
eval
is useful if you need to touch a lot of data lightly; in such a scenario the network transfer of the data could be a bottleneck. The $code
argument must be a JavaScript function. $args
is an array of parameters that will be passed to the function. For more examples of using eval see http://www.mongodb.org/display/DOCS/Server-side+Code+Execution#Server-sideCodeExecution-Using{{db.eval%28%29}}.
AUTHORS
Florian Ragwitz <rafl@debian.org>
Kristina Chodorow <kristina@mongodb.org>
Mike Friedman <mike.friedman@10gen.com>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2012 by 10gen, Inc..
This is free software, licensed under:
The Apache License, Version 2.0, January 2004