|
NAMEMango::Cursor::Query - MongoDB query cursor SYNOPSISuse Mango::Cursor::Query; my $cursor = Mango::Cursor::Query->new(collection => $collection); my $docs = $cursor->all; DESCRIPTIONMango::Cursor::Query is a container for MongoDB query cursors used by Mango::Collection. ATTRIBUTESMango::Cursor::Query inherits all attributes from Mango::Cursor and implements the following new ones. await_datamy $await = $cursor->await_data; $cursor = $cursor->await_data(1); Await data. comment my $comment = $cursor->comment;
$cursor = $cursor->comment('Fun query!');
A comment to identify query. fields my $fields = $cursor->fields;
$cursor = $cursor->fields({foo => 1});
Select fields from documents. hint my $hint = $cursor->hint;
$cursor = $cursor->hint({foo => 1});
Force a specific index to be used. max_scanmy $max = $cursor->max_scan; $cursor = $cursor->max_scan(500); Limit the number of documents to scan. max_time_msmy $max = $cursor->max_time_ms; $cursor = $cursor->max_time_ms(500); Timeout for query in milliseconds. query my $query = $cursor->query;
$cursor = $cursor->query({foo => 'bar'});
Original query. read_preference my $pref = $cursor->read_preference;
$cursor = $cursor->read_preference({mode => 'SECONDARY'});
Read preference. skipmy $skip = $cursor->skip; $cursor = $cursor->skip(5); Number of documents to skip, defaults to 0. snapshotmy $snapshot = $cursor->snapshot; $cursor = $cursor->snapshot(1); Use snapshot mode. sort my $sort = $cursor->sort;
$cursor = $cursor->sort({foo => 1});
$cursor = $cursor->sort(bson_doc(foo => 1, bar => -1));
Sort documents, the order of keys matters. tailablemy $tailable = $cursor->tailable; $cursor = $cursor->tailable(1); Tailable cursor. METHODSMango::Cursor::Query inherits all methods from Mango::Cursor and implements the following new ones. build_querymy $query = $cursor->build_query; my $query = $cursor->build_query($explain); Generate final query with cursor attributes. clonemy $clone = $cursor->clone; Clone cursor. countmy $count = $cursor->count; Count number of documents this cursor can return. You can also append a callback to perform operation non-blocking. $cursor->count(sub {
my ($cursor, $err, $count) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
distinct my $values = $cursor->distinct('foo');
Get all distinct values for key. You can also append a callback to perform operation non-blocking. $cursor->distinct(foo => sub {
my ($cursor, $err, $values) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
explainmy $doc = $cursor->explain; Provide information on the query plan. You can also append a callback to perform operation non-blocking. $cursor->explain(sub {
my ($cursor, $err, $doc) = @_;
...
});
Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
SEE ALSOMango, Mojolicious::Guides, <http://mojolicio.us>.
|