SYNOPSIS
use Mango::Cursor::Query;
my $cursor = Mango::Cursor::Query->new(collection => $collection);
my $docs = $cursor->all;
DESCRIPTION
Mango::Cursor::Query is a container for MongoDB query cursors used by Mango::Collection.ATTRIBUTES
Mango::Cursor::Query inherits all attributes from Mango::Cursor and implements the following new ones.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_scan
my $max = $cursor->max_scan; $cursor = $cursor->max_scan(500);
Limit the number of documents to scan.
max_time_ms
my $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.
skip
my $skip = $cursor->skip; $cursor = $cursor->skip(5);
Number of documents to skip, defaults to 0.
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.
METHODS
Mango::Cursor::Query inherits all methods from Mango::Cursor and implements the following new ones.build_query
my $query = $cursor->build_query; my $query = $cursor->build_query($explain);
Generate final query with cursor attributes.
clone
my $clone = $cursor->clone;
Clone cursor.
count
my $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;
explain
my $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;