mongocollection.parallelcollectionscan(3) [php man page]
MONGOCOLLECTION.PARALLELCOLLECTIONSCAN(3) 1 MONGOCOLLECTION.PARALLELCOLLECTIONSCAN(3)MongoCollection::parallelCollectionScan - Returns an array of cursors to iterator over a full collection in parallel
SYNOPSIS
public array[MongoCommandCursor] MongoCollection::parallelCollectionScan (int $num_cursors)
DESCRIPTION
This method returns an array of a maximum of num_cursors cursors. An iteration over one of the returned cursors results in a partial set
of documents for a collection. Iteration over all the returned cursors results in getting every document back from the collection.
This method is a wrapper for the parallelCollectionScan MongoDB command.
PARAMETERS
o $num_cursors
- The number of cursors to request from the server. Please note, that the server can return less cursors than you requested.
RETURN VALUES
Returns an array of MongoCommandCursor objects.
EXAMPLES
Example #1
MongoCollection.parallelCollectionScan(3) example
Returning all documents in a collection by using multiple cursors.
<?php
$m = new MongoClient;
$c = $m->demo->cities;
/* Request three cursors */
$cursors = $c->parallelCollectionScan( 3 );
/* Add all the cursors to the MultipleIterator */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
$mi->attachIterator( $cursor );
}
/* Iterate over all the associated cursors */
foreach ( $mi as $items )
{
foreach ( $items as $item )
{
if ( $item !== NULL )
{
echo $item['name'], "
";
}
}
}
?>
SEE ALSO
MultipleIterator, MongoCommandCursor, MongoDB::command.
PHP Documentation Group MONGOCOLLECTION.PARALLELCOLLECTIONSCAN(3)
Check Out this Related Man Page
MONGOCOLLECTION.FIND(3) 1 MONGOCOLLECTION.FIND(3)MongoCollection::find - Queries this collection, returning aMongoCursorfor the result set
SYNOPSIS
public MongoCursor MongoCollection::find ([array $query = array()], [array $fields = array()])
DESCRIPTION PARAMETERS
o $query
- The fields for which to search. MongoDB's query language is quite extensive. The PHP driver will in almost all cases pass the
query straight through to the server, so reading the MongoDB core docs on find is a good idea.
Warning
Please make sure that for all special query operators (starting with $) you use single quotes so that PHP doesn't try to
replace "$exists" with the value of the variable $exists.
o $fields
- Fields of the results to return. The array is in the format array('fieldname' => true, 'fieldname2' => true). The _id field is
always returned.
RETURN VALUES
Returns a cursor for the search results.
EXAMPLES
Example #1
MongoCollection.find(3) example
This example demonstrates basic search options.
<?php
$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'produce');
// search for fruits
$fruitQuery = array('Type' => 'Fruit');
$cursor = $collection->find($fruitQuery);
foreach ($cursor as $doc) {
var_dump($doc);
}
// search for produce that is sweet. Taste is a child of Details.
$sweetQuery = array('Details.Taste' => 'Sweet');
echo "Sweet
";
$cursor = $collection->find($sweetQuery);
foreach ($cursor as $doc) {
var_dump($doc);
}
?>
The above example will output:
array(4) {
["_id"]=>
object(MongoId)#7(1) {
["$id"]=>
string(24) "50a87dd084f045a19b220dd6"
}
["Name"]=>
string(5) "Apple"
["Type"]=>
string(5) "Fruit"
["Details"]=>
array(2) {
["Taste"]=>
string(5) "Sweet"
["Colour"]=>
string(3) "Red"
}
}
array(4) {
["_id"]=>
object(MongoId)#8(1) {
["$id"]=>
string(24) "50a87de084f045a19b220dd7"
}
["Name"]=>
string(5) "Lemon"
["Type"]=>
string(5) "Fruit"
["Details"]=>
array(2) {
["Taste"]=>
string(4) "Sour"
["Colour"]=>
string(5) "Green"
}
}
Sweet:
array(4) {
["_id"]=>
object(MongoId)#7(1) {
["$id"]=>
string(24) "50a87dd084f045a19b220dd6"
}
["Name"]=>
string(5) "Apple"
["Type"]=>
string(5) "Fruit"
["Details"]=>
array(2) {
["Taste"]=>
string(5) "Sweet"
["Colour"]=>
string(3) "Red"
}
}
See MongoCursor for more information how to work with cursors.
Example #2
MongoCollection.find(3) example
This example demonstrates how to search for a range.
<?php
$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');
// search for documents where 5 < x < 20
$rangeQuery = array('x' => array( '$gt' => 5, '$lt' => 20 ));
$cursor = $collection->find($rangeQuery);
foreach ($cursor as $doc) {
var_dump($doc);
}
?>
The above example will output:
array(2) {
["_id"]=>
object(MongoId)#10(1) {
["$id"]=>
string(24) "4ebc3e3710b89f2349000000"
}
["x"]=>
int(12)
}
array(2) {
["_id"]=>
object(MongoId)#11(1) {
["$id"]=>
string(24) "4ebc3e3710b89f2349000001"
}
["x"]=>
int(12)
}
See MongoCursor for more information how to work with cursors.
Example #3
MongoCollection.find(3) example using $where
This example demonstrates how to search a collection using javascript code to reduce the resultset.
<?php
$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');
$js = "function() {
return this.name == 'Joe' || this.age == 50;
}";
$cursor = $collection->find(array('$where' => $js));
foreach ($cursor as $doc) {
var_dump($doc);
}
?>
The above example will output:
array(3) {
["_id"]=>
object(MongoId)#7(1) {
["$id"]=>
string(24) "4ebc3e3710b89f2349000002"
}
["name"]=>
string(3) "Joe"
["age"]=>
int(20)
}
Example #4
MongoCollection.find(3) example using $in
This example demonstrates how to search a collection using the $in operator.
<?php
$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');
$cursor = $collection->find(array(
'name' => array('$in' => array('Joe', 'Wendy'))
));
?>
The above example will output:
array(3) {
["_id"]=>
object(MongoId)#7(1) {
["$id"]=>
string(24) "4ebc3e3710b89f2349000002"
}
["name"]=>
string(3) "Joe"
["age"]=>
int(20)
}
Example #5
Getting results as an array
This returns a MongoCursor. Often, when people are starting out, they are more comfortable using an array. To turn a cursor into an
array, use the iterator_to_array(3) function.
<?php
$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');
$cursor = $collection->find();
$array = iterator_to_array($cursor);
?>
The above example will output:
array(3) {
["4ebc40af10b89f5149000000"]=>
array(2) {
["_id"]=>
object(MongoId)#6(1) {
["$id"]=>
string(24) "4ebc40af10b89f5149000000"
}
["x"]=>
int(12)
}
["4ebc40af10b89f5149000001"]=>
array(2) {
["_id"]=>
object(MongoId)#11(1) {
["$id"]=>
string(24) "4ebc40af10b89f5149000001"
}
["x"]=>
int(12)
}
["4ebc40af10b89f5149000002"]=>
array(3) {
["_id"]=>
object(MongoId)#12(1) {
["$id"]=>
string(24) "4ebc40af10b89f5149000002"
}
["name"]=>
string(3) "Joe"
["age"]=>
int(20)
}
}
Using iterator_to_array(3) forces the driver to load all of the results into memory, so do not do this for result sets that are
larger than memory!
Also, certain system collections do not have an _id field. If you are dealing with a collection that might have documents without
_ids, pass FALSE as the second argument to iterator_to_array(3) (so that it will not try to use the non-existent _id values as
keys).
SEE ALSO MongoCollection.findOne(3), MongoCollection.insert(3), MongoDB core docs on find..
PHP Documentation Group MONGOCOLLECTION.FIND(3)