MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Decodifica JSON utilizzando PHP da Mongo

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 :)