sql >> Database >  >> NoSQL >> MongoDB

JSON decoderen met PHP van Mongo

MongoDB doet niet sla de gegevens op als JSON.

Het document dat u hebt geplakt, lijkt uit de shell te kopiëren en plakken. Dit is ook geen JSON-formaat. Dit formaat wordt Extended JSON genoemd - en zo vertegenwoordigt de MongoDB-shell de gegevens in javascript. De meeste voorbeelden op de MongoDB-website gebruiken dit formaat ook omdat het eenvoudig en gemakkelijk is. Dus in plaats van tientallen verschillende uitvoerformaten (voor elke taaldriver), gebruiken de officiële documentatie van MongoDB de shell om functionaliteit en uitvoer te demonstreren.

Het eigenlijke onderliggende formaat wordt Binary JSON (BSON) genoemd. Je zult dit formaat nooit zien en je zult er nooit mee werken.

Wanneer u in PHP met MongoDB communiceert, hoeft u alleen maar te weten dat u een PHP-array opslaat. De gegevens die door MongoDB worden geretourneerd, zijn ook een PHP-array. Het onderliggende schijfformaat is niet relevant.

Je hoeft nooit json_encode() of json_decode() aan te roepen.

De $collection->find($query) methode retourneert een object met de naam MongoCursor. U moet dit object herhalen om de resultaten te krijgen, wat een PHP-array zal zijn.

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

Dit codevoorbeeld var_dump() één resultaat tegelijk. Dit result wordt een "MongoDB-document" genoemd en is vergelijkbaar met "MySQL-rij". Net als bij MySQL hoeft u niet te weten wat het onderliggende protocol is, of wat het onderliggende schijfformaat is - dat heeft geen invloed op u.

Ik raad je ten zeerste aan de MongoDB PHP Driver tutorial te lezen:http://us2. php.net/manual/en/mongo.tutorial.php

Dit zou het concept een beetje beter moeten uitleggen, samen met hoe de bestuurder werkt :)




  1. MongoDB $oid versus ObjectId

  2. Beperk de lengte van de lijst in redis

  3. Mongoose breidt standaardvalidatie uit

  4. Mongorestore, van meteoorproductieserver naar lokaal