sql >> Databáze >  >> NoSQL >> MongoDB

Dekódování JSON pomocí PHP od Mongo

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




  1. Hierarchie sestavení Mongodb $graphLookup

  2. co jsou pagecache, dentries, inody?

  3. Jak správně znovu použít připojení k Mongodb napříč aplikací a moduly NodeJs

  4. Správa dlouhotrvajících operací v MongoDB