MongoDB non archivia i dati come JSON.
Il documento che hai incollato sembra essere copia e incolla dalla shell. Anche questo non è un formato JSON. Questo formato è chiamato Extended JSON ed è il modo in cui la shell MongoDB rappresenta i dati in javascript. Anche la maggior parte degli esempi sul sito Web MongoDB utilizza questo formato poiché è semplice e facile. Quindi, piuttosto che avere dozzine di formati di output diversi (per ogni driver di lingua), la documentazione ufficiale di MongoDB usa la shell per dimostrare la funzionalità e l'output.
Il formato di sovrapposizione effettivo è chiamato Binary JSON (BSON). Non vedrai mai questo formato e non interagirai mai con esso.
Quando interagisci con MongoDB in PHP, tutto ciò che devi sapere è che salvi un array PHP. Anche i dati restituiti da MongoDB sono un array PHP. Il formato del disco sottostante non è rilevante.
Non devi mai chiamare json_encode() o json_decode().
La $collection->find($query)
restituisce un oggetto chiamato MongoCursor. Dovresti scorrere questo oggetto per ottenere i risultati, che saranno un array PHP.
foreach($collection->find($query) as $result) {
var_dump($result);
}
Questo esempio di codice var_dump() un risultato alla volta. Questo result
è chiamato "Documento MongoDB" ed è simile a "Riga MySQL". Proprio come con MySQL, non è necessario sapere qual è il protocollo sottostante o qual è il formato del disco sottostante, questo non ha alcun effetto su di te.
Ti consiglio vivamente di leggere il tutorial del driver PHP MongoDB:http://us2. php.net/manual/en/mongo.tutorial.php
Questo dovrebbe spiegare un po' meglio il concetto, insieme a come funziona il driver :)