MongoDB nedělá uložte data jako JSON.
Zdá se, že dokument, který jste vložili, byl zkopírován a vložit z shellu. Toto není ani formát JSON. Tento formát se nazývá Extended JSON - a je to způsob, jakým shell MongoDB reprezentuje data v javascriptu. Většina příkladů na webu MongoDB také používá tento formát, protože je jednoduchý a snadný. Takže spíše než mít desítky různých výstupních formátů (pro každý jazykový ovladač), oficiální dokumentace MongoDB používá shell pro demonstraci funkčnosti a výstupu.
Skutečný podkladový formát se nazývá binární JSON (BSON). Tento formát nikdy neuvidíte a nikdy s ním nebudete interagovat.
Když komunikujete s MongoDB v PHP, vše, co musíte vědět, je, že ukládáte pole PHP. Data vrácená z MongoDB jsou také pole PHP. Formát podkladového disku není relevantní.
Nikdy nemusíte volat json_encode() nebo json_decode().
$collection->find($query)
metoda vrací objekt nazvaný MongoCursor. Měli byste iterovat přes tento objekt, abyste získali výsledky, což bude pole PHP.
foreach($collection->find($query) as $result) {
var_dump($result);
}
Tento příklad kódu bude var_dump() jeden výsledek po druhém. Tento result
se nazývá „Dokument MongoDB“ a je podobný „řádku MySQL“. Stejně jako u MySQL nemusíte vědět, jaký je podkládací protokol nebo jaký je formát podkládacího disku – to na vás nemá žádný vliv.
Důrazně doporučuji, abyste si přečetli tutoriál MongoDB PHP Driver:http://us2. php.net/manual/en/mongo.tutorial.php
To by mělo vysvětlit koncept trochu lépe, spolu s tím, jak ovladač funguje :)