MongoDB ne le fait pas stocker les données au format JSON.
Le document que vous avez collé semble être un copier-coller depuis le shell. Ce n'est pas non plus le format JSON. Ce format est appelé Extended JSON - et c'est ainsi que le shell MongoDB représente les données en javascript. La plupart des exemples sur le site Web MongoDB utilisent également ce format car il est simple et facile. Ainsi, plutôt que d'avoir des dizaines de formats de sortie différents (pour chaque pilote de langue), les documentations officielles de MongoDB utilisent le shell pour démontrer les fonctionnalités et la sortie.
Le format sous-jacent réel est appelé Binary JSON (BSON). Vous ne verrez jamais ce format et vous n'interagirez jamais avec lui.
Lorsque vous interagissez avec MongoDB en PHP, tout ce que vous devez savoir, c'est que vous enregistrez un tableau PHP. Les données renvoyées par MongoDB sont également un tableau PHP. Le format du disque sous-jacent n'est pas pertinent.
Vous n'avez jamais à appeler json_encode() ou json_decode().
Le $collection->find($query)
La méthode renvoie un objet appelé MongoCursor. Vous devez itérer sur cet objet pour obtenir les résultats, qui seront un tableau PHP.
foreach($collection->find($query) as $result) {
var_dump($result);
}
Cet exemple de code va var_dump() un résultat à la fois. Ce result
s'appelle un "document MongoDB" et est similaire à une "ligne MySQL". Tout comme avec MySQL, vous n'avez pas besoin de savoir quel est le protocole sous-jacent ou quel est le format du disque sous-jacent - cela n'a aucun effet sur vous.
Je vous suggère fortement de lire le tutoriel MongoDB PHP Driver :http://us2. php.net/manual/en/mongo.tutorial.php
Cela devrait expliquer un peu mieux le concept, ainsi que le fonctionnement du pilote :)