MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Decodificando JSON usando PHP do Mongo


O MongoDB não armazene os dados como JSON.

O documento que você colou parece copiar e colar do shell. Este também não é o formato JSON. Este formato é chamado Extended JSON - e é como o shell do MongoDB representa os dados em javascript. A maioria dos exemplos no site do MongoDB também usa esse formato, pois é simples e fácil. Então, em vez de ter dezenas de formatos de saída diferentes (para cada driver de idioma), as documentações oficiais do MongoDB usam o shell para demonstrar a funcionalidade e a saída.

O formato subjacente real é chamado Binary JSON (BSON). Você nunca verá esse formato e nunca interagirá com ele.

Quando você interage com o MongoDB em PHP, tudo que você precisa saber é que você salva um array PHP. Os dados retornados do MongoDB também são uma matriz PHP. O formato do disco subjacente não é relevante.

Você nunca precisa chamar json_encode() ou json_decode().

A $collection->find($query) retorna um objeto chamado MongoCursor. Você deve iterar sobre este objeto para obter os resultados, que serão um array PHP.
foreach($collection->find($query) as $result) {
    var_dump($result);
}

Este exemplo de código irá var_dump() um resultado de cada vez. Este result é chamado de "Documento MongoDB" e é semelhante a "linha MySQL". Assim como no MySQL, você não precisa saber qual é o protocolo subjacente ou qual é o formato do disco subjacente - isso não afeta você.

Eu sugiro fortemente que você leia o tutorial MongoDB PHP Driver:http://us2. php.net/manual/en/mongo.tutorial.php

Isso deve explicar um pouco melhor o conceito, além de como o driver funciona :)