sql >> Base de Datos >  >> NoSQL >> MongoDB

Decodificando JSON usando PHP de Mongo

MongoDB no almacenar los datos como JSON.

El documento que pegó parece estar copiado y pegado desde el shell. Este tampoco es formato JSON. Este formato se llama JSON extendido, y es cómo el shell de MongoDB representa los datos en javascript. La mayoría de los ejemplos en el sitio web de MongoDB también usan este formato, ya que es simple y fácil. Entonces, en lugar de tener docenas de formatos de salida diferentes (para cada controlador de idioma), las documentaciones oficiales de MongoDB usan el shell para demostrar la funcionalidad y la salida.

El formato subyacente real se denomina JSON binario (BSON). Nunca verá este formato y nunca interactuará con él.

Cuando interactúa con MongoDB en PHP, todo lo que debe saber es que guarda una matriz de PHP. Los datos devueltos por MongoDB también son una matriz de PHP. El formato del disco subyacente no es relevante.

Nunca tiene que llamar a json_encode() o json_decode().

La $collection->find($query) método devuelve un objeto llamado MongoCursor. Debe iterar sobre este objeto para obtener los resultados, que serán una matriz de PHP.

foreach($collection->find($query) as $result) {
    var_dump($result);
}

Este ejemplo de código var_dump() un resultado a la vez. Este result se denomina "Documento MongoDB" y es similar a la "fila MySQL". Al igual que con MySQL, no tiene que saber cuál es el protocolo subyacente o cuál es el formato del disco subyacente, eso no le afecta.

Le sugiero que lea el tutorial del controlador PHP de MongoDB:http://us2. php.net/manual/en/mongo.tutorial.php

Esto debería explicar el concepto un poco mejor, junto con cómo funciona el controlador :)