Provided by: libmango-perl_0.22-1_all
NAME
Mango::Cursor - MongoDB cursor
SYNOPSIS
use Mango::Cursor; my $cursor = Mango::Cursor->new(collection => $collection); my $docs = $cursor->all;
DESCRIPTION
Mango::Cursor is a container for MongoDB cursors used by Mango::Collection.
ATTRIBUTES
Mango::Cursor implements the following attributes. batch_size my $size = $cursor->batch_size; $cursor = $cursor->batch_size(10); Number of documents to fetch in one batch, defaults to 0. collection my $collection = $cursor->collection; $cursor = $cursor->collection(Mango::Collection->new); Mango::Collection object this cursor belongs to. 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. id my $id = $cursor->id; $cursor = $cursor->id(123456); Cursor id. limit my $limit = $cursor->limit; $cursor = $cursor->limit(10); Limit the number of documents, defaults to 0. max_scan my $max = $cursor->max_scan; $cursor = $cursor->max_scan(500); Limit the number of documents to scan. query my $query = $cursor->query; $cursor = $cursor->query({foo => 'bar'}); Original query. skip my $skip = $cursor->skip; $cursor = $cursor->skip(5); Number of documents to skip, defaults to 0. snapshot my $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. tailable my $tailable = $cursor->tailable; $cursor = $cursor->tailable(1); Tailable cursor.
METHODS
Mango::Cursor inherits all methods from Mojo::Base and implements the following new ones. add_batch $cursor = $cursor->add_batch($docs); Add batch of documents to cursor. all my $docs = $cursor->all; Fetch all documents at once. You can also append a callback to perform operation non- blocking. $cursor->all(sub { my ($cursor, $err, $docs) = @_; ... }); Mojo::IOLoop->start unless Mojo::IOLoop->is_running; 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; next my $doc = $cursor->next; Fetch next document. You can also append a callback to perform operation non-blocking. $cursor->next(sub { my ($cursor, $err, $doc) = @_; ... }); Mojo::IOLoop->start unless Mojo::IOLoop->is_running; rewind $cursor->rewind; Rewind cursor and kill it on the server. You can also append a callback to perform operation non-blocking. $cursor->rewind(sub { my ($cursor, $err) = @_; ... }); Mojo::IOLoop->start unless Mojo::IOLoop->is_running;
SEE ALSO
Mango, Mojolicious::Guides, <http://mojolicio.us>.