MongoDB::QueryResult - An iterator for Mongo query results
version v2.2.2
$cursor = $coll->find( $filter );
$result = $cursor->result;
while ( $doc = $result->next ) {
process_doc($doc)
}
This class defines an iterator against a query result. It automatically
fetches additional results from the originating mongod/mongos server
on demand.
For backwards compatibility reasons, the MongoDB::Cursor manpage encapsulates query
parameters and generates a MongoDB::QueryResult object on demand. All
iterators on MongoDB::Cursor delegate to MongoDB::QueryResult object.
Retrieving this object and iterating on it directly will be slightly
more efficient.
Unless otherwise explicitly documented, all methods throw exceptions if
an error occurs. The error types are documented in the MongoDB::Error manpage.
To catch and handle errors, the the Try::Tiny manpage and the Safe::Isa manpage modules
are recommended:
When a MongoDB::QueryResult object is destroyed, a cursor termination
request will be sent to the originating server to free server resources.
NOTE: Per threads documentation, use of Perl threads is discouraged by the
maintainers of Perl and the MongoDB Perl driver does not test or provide support
for use with threads.
Iterators are cloned in threads, but not reset. Iterating from multiple
threads will give unpredictable results. Only iterate from a single
thread.
if ( $response->has_next ) {
...
}
Returns true if additional documents are available. This will
attempt to get another batch of documents from the server if
necessary.
while ( $doc = $result->next ) {
process_doc($doc)
}
Returns the next document or undef if the server cursor is exhausted.
while ( @batch = $result->batch ) {
for $doc ( @batch ) {
process_doc($doc);
}
}
Returns the next batch of documents or an empty list if the server cursor is exhausted.
@docs = $result->all;
Returns all documents as a list.
This software is Copyright (c) 2020 by MongoDB, Inc.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
|