- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- USAGE
- ATTRIBUTES
- METHODS
- DEPRECATIONS
- AUTHORS
- COPYRIGHT AND LICENSE
NAME
MongoDB::Database - A MongoDB Database
VERSION
version v1.6.1
SYNOPSIS
# get a Database object via MongoDB::MongoClient
my $db = $client->get_database("foo");
# get a Collection via the Database object
my $coll = $db->get_collection("people");
# run a command on a database
my $res = $db->run_command([ismaster => 1]);
DESCRIPTION
This class models a MongoDB database. Use it to construct MongoDB::Collection objects. It also provides the "run_command" method and some convenience methods that use it.
Generally, you never construct one of these directly with new. Instead, you call get_database on a MongoDB::MongoClient object.
USAGE
Error handling
Unless otherwise explicitly documented, all methods throw exceptions if an error occurs. The error types are documented in MongoDB::Error.
To catch and handle errors, the Try::Tiny and Safe::Isa modules are recommended:
use Try::Tiny;
use Safe::Isa; # provides $_isa
try {
$db->run_command( @command )
}
catch {
if ( $_->$_isa("MongoDB::DuplicateKeyError" ) {
...
}
else {
...
}
};
To retry failures automatically, consider using Try::Tiny::Retry.
ATTRIBUTES
name
The name of the database.
read_preference
A MongoDB::ReadPreference object. It may be initialized with a string corresponding to one of the valid read preference modes or a hash reference that will be coerced into a new MongoDB::ReadPreference object. By default it will be inherited from a MongoDB::MongoClient object.
write_concern
A MongoDB::WriteConcern object. It may be initialized with a hash reference that will be coerced into a new MongoDB::WriteConcern object. By default it will be inherited from a MongoDB::MongoClient object.
read_concern
A MongoDB::ReadConcern object. May be initialized with a hash reference or a string that will be coerced into the level of read concern.
By default it will be inherited from a MongoDB::MongoClient object.
max_time_ms
Specifies the maximum amount of time in milliseconds that the server should use for working on a query.
Note: this will only be used for server versions 2.6 or greater, as that was when the $maxTimeMS meta-operator was introduced.
bson_codec
An object that provides the encode_one and decode_one methods, such as from MongoDB::BSON. It may be initialized with a hash reference that will be coerced into a new MongoDB::BSON object. By default it will be inherited from a MongoDB::MongoClient object.
METHODS
list_collections
$result = $coll->list_collections( $filter );
$result = $coll->list_collections( $filter, $options );
Returns a MongoDB::QueryResult object to iterate over collection description documents. These will contain name and options keys like so:
use boolean;
{
name => "my_capped_collection",
options => {
capped => true,
size => 10485760,
}
},
An optional filter document may be provided, which cause only collection description documents matching a filter expression to be returned. See the listCollections command documentation for more details on filtering for specific collections.
A hash reference of options may be provided. Valid keys include:
batchSize– the number of documents to return per batch.maxTimeMS– the maximum amount of time in milliseconds to allow the command to run. (Note, this will be ignored for servers before version 2.6.)
collection_names
my @collections = $database->collection_names;
my @collections = $database->collection_names( $filter );
Returns the list of collections in this database.
An optional filter document may be provided, which cause only collection description documents matching a filter expression to be returned. See the listCollections command documentation for more details on filtering for specific collections.
Warning: if the number of collections is very large, this may return a very large result. Either pass an appropriate filter, or use "list_collections" to iterate over collections instead.
get_collection, coll
my $collection = $database->get_collection('foo');
my $collection = $database->get_collection('foo', $options);
my $collection = $database->coll('foo', $options);
Returns a MongoDB::Collection for the given collection name within this database.
It takes an optional hash reference of options that are passed to the MongoDB::Collection constructor.
The coll method is an alias for get_collection.
get_gridfsbucket, gfs
my $grid = $database->get_gridfsbucket;
my $grid = $database->get_gridfsbucket($options);
my $grid = $database->gfs($options);
This method returns a MongoDB::GridFSBucket object for storing and retrieving files from the database.
It takes an optional hash reference of options that are passed to the MongoDB::GridFSBucket constructor.
See MongoDB::GridFSBucket for more information.
The gfs method is an alias for get_gridfsbucket.
get_gridfs (DEPRECATED)
my $grid = $database->get_gridfs;
my $grid = $database->get_gridfs("fs");
my $grid = $database->get_gridfs("fs", $options);
The MongoDB::GridFS class has been deprecated in favor of the new MongoDB driver-wide standard GridFS API, available via MongoDB::GridFSBucket and the get_gridfsbucket/gfs methods.
This method returns a MongoDB::GridFS for storing and retrieving files from the database. Default prefix is "fs", making $grid->files "fs.files" and $grid->chunks "fs.chunks".
It takes an optional hash reference of options that are passed to the MongoDB::GridFS constructor.
See MongoDB::GridFS for more information.
drop
$database->drop;
Deletes the database.
run_command
my $output = $database->run_command([ some_command => 1 ]);
my $output = $database->run_command(
[ some_command => 1 ],
{ mode => 'secondaryPreferred' }
);
This method runs a database command. The first argument must be a document with the command and its arguments. It should be given as an array reference of key-value pairs or a Tie::IxHash object with the command name as the first key. The use of a hash reference will only reliably work for commands without additional parameters.
By default, commands are run with a read preference of 'primary'. An optional second argument may specify an alternative read preference. If given, it must be a MongoDB::ReadPreference object or a hash reference that can be used to construct one.
It returns the output of the command (a hash reference) on success or throws a MongoDB::DatabaseError exception if the command fails.
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::Examples section. See also core documentation on database commands: http://dochub.mongodb.org/core/commands.
DEPRECATIONS
The methods still exist, but are no longer documented. In a future version they will warn when used, then will eventually be removed.
last_error
AUTHORS
David Golden <[email protected]>
Rassi <[email protected]>
Mike Friedman <[email protected]>
Kristina Chodorow <[email protected]>
Florian Ragwitz <[email protected]>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by MongoDB, Inc.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004