Read Data from MongoDB
On this page
Overview
On this page, you can see copyable code examples that show common PHP library methods for retrieving documents.
Tip
To learn more about any of the methods shown on this page, see the link provided in each section.
To use an example from this page, copy the code example into the
sample application or your own application.
Make sure to set the MONGODB_URI
environment variable to the
connection string for your MongoDB deployment, and replace the
<database>
and <collection>
placeholders with values for your
target namespace.
Sample Application
You can use the following sample application to test the code examples on this page. To use the sample application, perform the following steps:
Ensure you have the MongoDB PHP Library installed in your project. To learn more about installing the MongoDB PHP Library, see the Download and Install guide.
Copy the following code and paste it into a new
.php
file.Copy a code example from this page and paste it on the specified lines in the file.
1 2 3 require __DIR__ . '/../vendor/autoload.php'; 4 5 $uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset'); 6 $client = new MongoDB\Client($uri); 7 8 $collection = $client->selectCollection('<database>', '<collection>'); 9 10 // Start example code here 11 12 // End example code here
Find One
The following code shows how to retrieve a single document from a collection that matches the specified criteria:
$document = $collection->findOne(['year' => 1994]); echo json_encode($document), PHP_EOL;
To learn more about the findOne()
method, see the Find One Document
section in the Retrieve Data guide.
Find Multiple
The following code shows how to retrieve all documents from a collection that match the specified criteria:
$resultsMultiple = $collection->find(['year' => 1970]); foreach ($resultsMultiple as $doc) { echo json_encode($doc), PHP_EOL; }
To learn more about the find()
method, see the Find Multiple Documents
section in the Retrieve Data guide.
Count Documents in a Collection
The following code shows how to count the number of documents in a collection:
$result = $collection->countDocuments([]); echo 'Number of documents: ', $result;
To learn more about the countDocuments()
method, see the
Count All Documents section in the Count Documents guide.
Count Documents Returned from a Query
The following code shows how to count documents in a collection that match the specified criteria:
$result = $collection->countDocuments(['year' => 2010]); echo 'Number of companies founded in 2010: ', $result;
To learn more about the countDocuments()
method, see the
Count Specific Documents section in the Count Documents guide.
Estimated Document Count
The following code shows how to retrieve an estimated count of the number of documents in a collection:
$result = $collection->estimatedDocumentCount(); echo 'Estimated number of documents: ', $result;
To learn more about the estimatedDocumentCount()
method, see the
Retrieve an Estimated Count section in the Count Documents guide.
Retrieve Distinct Values
The following code shows how to retrieve the unique values of a field for documents that match the specified criteria:
$results = $collection->distinct('year'); foreach ($results as $value) { echo json_encode($value), PHP_EOL; }
To learn more about the distinct()
method, see the
Retrieve Distinct Field Values guide.
Monitor Data Changes
The following code shows how to monitor and print changes to a collection:
$changeStream = $collection->watch(); for ($changeStream->rewind(); true; $changeStream->next()) { if ( ! $changeStream->valid()) { continue; } $event = $changeStream->current(); echo toJSON($event), PHP_EOL; if ($event['operationType'] === 'invalidate') { break; } }
To learn more about the watch()
method, see the
Monitor Data Changes guide.