Executes a MongoDB Driver Query for the specified collection namespace.
The examples focus on the operation itself, including the important distinction: executeBulkWrite performs writes instead of cursor-backed reads.
What It Does
Use the examples below to observe the behavior on a small dataset before extending it to application code.
Syntax and Return Value
MongoDB\Driver\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, ?array $options = null): MongoDB\Driver\Cursor
The displayed signature describes the API or identifies any correction or optional dependency. When a parameter is optional, supply it only when the task requires it.
Example 1: Basic Use
Requires PECL mongodb and a reachable server. BulkWrite queues changes locally; only executeBulkWrite sends them. Cursors stream server results.
<?php
$manager = new MongoDB\Driver\Manager(getenv("MONGODB_URI") ?: "mongodb://127.0.0.1:27017");
$query = new MongoDB\Driver\Query(["priority" => ["$gte" => 1]], ["limit" => 5]);
$cursor = $manager->executeQuery('demo.tasks', $query);
foreach ($cursor as $document) { echo $document->task . PHP_EOL; }
This example is meant for a configured application environment; output depends on the installed extension, external service, or database contents.
Example 2: Checking Behavior
Requires PECL mongodb and a reachable server. BulkWrite queues changes locally; only executeBulkWrite sends them. Cursors stream server results.
<?php
$manager = new MongoDB\Driver\Manager(getenv("MONGODB_URI") ?: "mongodb://127.0.0.1:27017");
$query = new MongoDB\Driver\Query(["priority" => ["$gte" => 2]], ["limit" => 5]);
$cursor = $manager->executeQuery('demo.audit', $query);
foreach ($cursor as $document) { echo $document->task . PHP_EOL; }
This example is meant for a configured application environment; output depends on the installed extension, external service, or database contents.
Example 3: Practical Example
Requires PECL mongodb and a reachable server. BulkWrite queues changes locally; only executeBulkWrite sends them. Cursors stream server results.
<?php
$manager = new MongoDB\Driver\Manager(getenv("MONGODB_URI") ?: "mongodb://127.0.0.1:27017");
$query = new MongoDB\Driver\Query(["priority" => ["$gte" => 3]], ["limit" => 5]);
$cursor = $manager->executeQuery('demo.queue', $query);
foreach ($cursor as $document) { echo $document->task . PHP_EOL; }
This example is meant for a configured application environment; output depends on the installed extension, external service, or database contents.
Important Behavior and Edge Cases
Results are cursors and may need materialization; do not assume a list is returned immediately.
This API is supplied by an optional extension that is not installed in the local test runtime, or requires a different PHP version. The example must be verified in a matching environment.
Comparison with Related Approaches
| Approach | Difference |
|---|---|
| MongoDB\Driver\Manager::executeQuery | Executes a MongoDB Driver Query for the specified collection namespace. |
| Related API or alternative | executeBulkWrite performs writes instead of cursor-backed reads. |
Common Beginner Mistakes
| Mistake | Correct approach |
|---|---|
| Ignoring the operation-specific limits | Results are cursors and may need materialization; do not assume a list is returned immediately. |
| Confusing it with a related API | executeBulkWrite performs writes instead of cursor-backed reads. |
Key Takeaways
- Executes a MongoDB Driver Query for the specified collection namespace.
- Results are cursors and may need materialization; do not assume a list is returned immediately.
- executeBulkWrite performs writes instead of cursor-backed reads.
Use MongoDB\Driver\Manager::executeQuery when its documented behavior matches the problem. Test the relevant edge cases in your own runtime before deploying it.