MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMapDéfini un type de carte à utiliser pour la désérialisation BSON

Description

final public MongoDB\Driver\Cursor::setTypeMap(array $typemap): void

Définit la configuration de mappage de type à utiliser lors de la désérialisation des résultats BSON en valeurs PHP.

Liste de paramètres

typeMap (array)

Configuration du type de carte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Lors de l'itération sur le curseur, les exceptions suivantes peuvent également être levées en raison d'une configuration de mappage de type incorrecte :

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::setTypeMap()

<?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);
}

?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#6 (1) {
    ["oid"]=>
    string(24) "56424fb76118fd3267180741"
  }
  ["x"]=>
  int(1)
}

Voir aussi

add a note

User Contributed Notes 1 note

up
16
tdrpic
7 years ago
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']);
To Top