|
NAMEMongoDB::Database - A MongoDB DatabaseVERSIONversion v2.2.2SYNOPSIS# 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]); DESCRIPTIONThis 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. USAGEError handlingUnless 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. ATTRIBUTESnameThe name of the database.read_preferenceA 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_concernA 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_concernA 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_msSpecifies 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_codecAn object that provides the "encode_one" and "decode_one" methods, such as from BSON. It may be initialized with a hash reference that will be coerced into a new BSON object. By default it will be inherited from a MongoDB::MongoClient object.METHODSclient$client = $db->client; Returns the MongoDB::MongoClient object associated with this object. 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 <http://docs.mongodb.org/manual/reference/command/listCollections/> for more details on filtering for specific collections. A hash reference of options may be provided. Valid keys include:
NOTE: When using "nameOnly", the filter query must be empty or must only query the "name" field or else no documents will be found. collection_namesmy @collections = $database->collection_names; my @collections = $database->collection_names( $filter ); my @collections = $database->collection_names( $filter, $options ); 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 <http://docs.mongodb.org/manual/reference/command/listCollections/> for more details on filtering for specific collections. A hashref of options may also be provided. Valid options include:
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, collmy $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, gfsmy $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". drop$database->drop; Deletes the database. A hashref of options may also be provided. Valid options include:
run_commandmy $output = $database->run_command([ some_command => 1 ]); my $output = $database->run_command( [ some_command => 1 ], { mode => 'secondaryPreferred' } ); my $output = $database->run_command( [ some_command => 1 ], $read_preference, $options ); 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. An error will be thrown if the command is not an ordered document. 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. A hashref of options may also be provided. Valid options include:
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>. aggregateRuns a query using the MongoDB 3.6+ aggregation framework and returns a MongoDB::QueryResult object.The first argument must be an array-ref of aggregation pipeline <http://docs.mongodb.org/manual/core/aggregation-pipeline/> documents. Each pipeline document must be a hash reference. The server supports several collection-less aggregation source stages like $currentOp and $listLocalSessions. $result = $database->aggregate( [ { "\$currentOp" => { allUsers => true, }, }, ] ); See Aggregation <http://docs.mongodb.org/manual/aggregation/> in the MongoDB manual for more information on how to construct aggregation queries. watchWatches for changes on this database.Perform an aggregation with an implicit initial $changeStream stage and returns a MongoDB::ChangeStream result which can be used to iterate over the changes in the database. This functionality is available since MongoDB 4.0. my $stream = $db->watch(); my $stream = $db->watch( \@pipeline ); my $stream = $db->watch( \@pipeline, \%options ); while (1) { # This inner loop will only run until no more changes are # available. while (my $change = $stream->next) { # process $change } } The returned stream will not block forever waiting for changes. If you want to respond to changes over a longer time use "maxAwaitTimeMS" and regularly call "next" in a loop. See "watch" in MongoDB::Collection for details on usage and available options. AUTHORS
COPYRIGHT AND LICENSEThis software is Copyright (c) 2020 by MongoDB, Inc.This is free software, licensed under: The Apache License, Version 2.0, January 2004
Visit the GSP FreeBSD Man Page Interface. |