MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Dekodieren von JSON mit PHP von Mongo

MongoDB nicht Speichern Sie die Daten als JSON.

Das von Ihnen eingefügte Dokument scheint aus der Shell kopiert und eingefügt worden zu sein. Dies ist auch kein JSON-Format. Dieses Format heißt Extended JSON - und so stellt die MongoDB-Shell die Daten in Javascript dar. Die meisten Beispiele auf der MongoDB-Website verwenden dieses Format ebenfalls, da es einfach und leicht ist. Anstatt also Dutzende verschiedener Ausgabeformate (für jeden Sprachtreiber) zu haben, verwenden die offiziellen MongoDB-Dokumentationen die Shell, um Funktionalität und Ausgabe zu demonstrieren.

Das eigentlich zugrunde liegende Format heißt Binary JSON (BSON). Sie werden dieses Format nie sehen und Sie werden nie damit interagieren.

Wenn Sie mit MongoDB in PHP interagieren, müssen Sie nur wissen, dass Sie ein PHP-Array speichern. Die von MongoDB zurückgegebenen Daten sind ebenfalls ein PHP-Array. Das zugrundeliegende Plattenformat ist nicht relevant.

Sie müssen niemals json_encode() oder json_decode() aufrufen.

Die $collection->find($query) -Methode gibt ein Objekt namens MongoCursor zurück. Sie sollten dieses Objekt durchlaufen, um die Ergebnisse zu erhalten, die ein PHP-Array sein werden.

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

In diesem Codebeispiel wird var_dump() ein Ergebnis nach dem anderen ausgeführt. Dieses result wird als "MongoDB-Dokument" bezeichnet und ähnelt "MySQL-Zeile". Genau wie bei MySQL müssen Sie nicht wissen, was das zugrunde liegende Protokoll oder das zugrunde liegende Festplattenformat ist - das hat keine Auswirkungen auf Sie.

Ich empfehle Ihnen dringend, das MongoDB-PHP-Treiber-Tutorial zu lesen:http://us2. php.net/manual/en/mongo.tutorial.php

Dies sollte das Konzept ein wenig besser erklären, zusammen mit der Funktionsweise des Treibers :)