Mango::Database inherits all methods from Mojo::Base and implements the following new ones.
build_write_concern
my $concern = $db->build_write_concern;
Build write concern based on l</"mango"> settings.
collection
my $collection = $db->collection('foo');
Build Mango::Collection object for collection.
collection_names
my $names = $db->collection_names;
Names of all collections in this database. You can filter the results by using the same arguments as for
"list_collections". You can also append a callback to perform operation non-blocking.
$db->collection_names(sub {
my ($db, $err, $names) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
command
my $doc = $db->command(bson_doc(text => 'foo.bar', search => 'test'));
my $doc = $db->command(bson_doc(getLastError => 1, w => 2));
my $doc = $db->command('getLastError', w => 2);
Run command against database. You can also append a callback to run command non-blocking.
$db->command(('getLastError', w => 2) => sub {
my ($db, $err, $doc) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
dereference
my $doc = $db->dereference($dbref);
Resolve database reference. You can also append a callback to perform operation non-blocking.
$db->dereference($dbref => sub {
my ($db, $err, $doc) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
gridfs
my $gridfs = $db->gridfs;
Build Mango::GridFS object.
list_collections
# return a cursor for all collections
my $cursor = $db->list_collections;
# only collections which name matchs a regex
my $cursor = $db->list_collections(filter => { name => qr{^prefix} });
# only capped collections
my $cursor = $db->list_collections(filter => { 'options.capped' => 1 });
# only the first 10 collections
my $cursor = $db->list_collections(cursor => { batchSize => 10 });
Returns a Mango::Cursor of all collections in this database. Each collection is represented by a document
containing at least the keys "name" and "options". You can also append a callback to perform operation
non-blocking.
$db->list_collections(sub {
my ($db, $err, $cursor) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
stats
my $stats = $db->stats;
Get database statistics. You can also append a callback to perform operation non-blocking.
$db->stats(sub {
my ($db, $err, $stats) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;