If you would prefer to have the results returned as an associative array, after executing your query you could call $cursor->setTypeMap like this:
$cursor->setTypeMap(['root' => 'array', 'document' => 'array', 'array' => 'array']);
PHP - Manual: MongoDB\Driver\Cursor::setTypeMap
2024-11-15
(mongodb >=1.0.0)
MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
$typemap
): voidSets the type map configuration to use when unserializing the BSON results into PHP values.
typeMap
(array)没有返回值。
When iterating over the cursor, the following exceptions can also be thrown due to an incorrect type map configuration:
示例 #1 MongoDB\Driver\Cursor::setTypeMap() example
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$bulk = new MongoDB\Driver\BulkWrite;
$id = $bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);
$query = new MongoDB\Driver\Query(['_id' => $id]);
$cursor = $manager->executeQuery('db.collection', $query);
$cursor->setTypeMap(['root' => 'array']);
foreach ($cursor as $document) {
var_dump($document);
}
?>
以上例程的输出类似于:
array(2) { ["_id"]=> object(MongoDB\BSON\ObjectId)#6 (1) { ["oid"]=> string(24) "56424fb76118fd3267180741" } ["x"]=> int(1) }
官方地址:https://www.php.net/manual/en/mongodb-driver-cursor.settypemap.php