sql >> Databasteknik >  >> NoSQL >> MongoDB

Avkodar JSON med PHP från Mongo

MongoDB gör det inte lagra data som JSON.

Dokumentet du klistrade in verkar vara copy&paste från skalet. Detta är inte heller JSON-format. Det här formatet kallas Extended JSON - och är hur MongoDB-skalet representerar data i javascript. De flesta exempel på MongoDB-webbplatsen använder också detta format eftersom det är enkelt och lätt. Så hellre än att ha dussintals olika utdataformat (för varje språkdrivrutin), använder MongoDB:s officiella dokumentation skalet för att demonstrera funktionalitet och utdata.

Själva underliggande formatet kallas Binary JSON (BSON). Du kommer aldrig att se det här formatet och du kommer aldrig att interagera med det.

När du interagerar med MongoDB i PHP behöver du bara veta att du sparar en PHP-array. Datan som returneras från MongoDB är också en PHP-array. Det underliggande skivformatet är inte relevant.

Du behöver aldrig anropa json_encode() eller json_decode().

$collection->find($query) metod returnerar ett objekt som heter MongoCursor. Du bör iterera över detta objekt för att få resultaten, som kommer att vara en PHP-array.

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

Detta kodexempel kommer att var_dump() ett resultat i taget. Detta result kallas ett "MongoDB-dokument" och liknar "MySQL-rad". Precis som med MySQL behöver du inte veta vad det underliggande protokollet är, eller vad det underliggande skivformatet är - det har ingen inverkan på dig.

Jag rekommenderar starkt att du läser handledningen för MongoDB PHP-drivrutin:http://us2. php.net/manual/en/mongo.tutorial.php

Detta borde förklara konceptet lite bättre, tillsammans med hur föraren fungerar :)




  1. Hitta att använda _id fungerar inte med aggregering

  2. Django serialisering till JSON-fel:'MetaDict'-objektet har inget attribut 'concrete_model'

  3. Hur Hadoop fungerar – Förstå hur Hadoop fungerar

  4. Mongodb kan inte hitta objekt med för långt _id