Ankündigung

Einklappen
Keine Ankündigung bisher.

[GELÖST] MongoDB für Anfänger...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [GELÖST] MongoDB für Anfänger...

    Hallo

    Ich versuche gerade was ganz simples für den Anfang - einfach via PHP einen Datensatz in eine MongoDB zu schreiben und wieder zu lesen...

    Leider scheitert es schon an der Verbindung mit der Datenbank.

    Server Ubuntu 16.04 - APACHE2 - PHP7.
    Was ich soweit schon in Erfahrung gebracht habe ist, dass sich zwischen PHP5 und PHP7 wohl in Verbindung mit MongoDB etwas geändert haben soll...
    Ich finde aber im Internet immer nur Beispiele für PHP5 und nicht für PHP7.

    Kann mir da vielleicht jemand ne gute Quelle oder einfach mal ein Beispiel hier rein posten, wie man in PHP7 ganz einfach eine Verbindung zu einer neuen MongoDB aufbaut, einen Datensatz schreibt und ließt?!

    Das beispiel hier läuft durch, ist für mich als Anfänger mit MongoDB allerdings etwas unverständlich...
    Ich schätze mal er schreibt das Array Test in die DB? - wie lese ich es wieder aus?
    PHP-Code:
    $test = ['test' => ['$in' => [1012]]];
    $query = new MongoDB\Driver\Query($test);
    $manager = new MongoDB\Driver\Manager;
    $cursor $manager->executeQuery('a.b'$query); 

    Alte Beispiele ala
    PHP-Code:
    $m = new MongoClient(); // connect
    $db $m->selectDB("example"); 
    funktionieren bei mir einfach nicht...
    Er kennt MongoClient() nicht

    Das scheint an PHP7 zu liegen

    Hoffe hier kann mir jemand weiter helfen.

    Vielen Dank und liebe Grüße

  • #2
    Ich kenne Deine Versionsstände nicht, aber für PHP7 benötigst Du mind. mongodb-1.1

    Quellen nach 5 Sek. Google:
    https://docs.mongodb.com/ecosystem/drivers/php/
    http://stackoverflow.com/questions/3...nsion-for-php7
    http://stackoverflow.com/questions/3...-client-driver

    Evtl. findest Du dort noch mehr Hinweise: https://www.google.de/search?q=php7+...mongo&ie=UTF-8
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Zitat von IceEagle Beitrag anzeigen
      funktionieren bei mir einfach nicht...
      Er kennt MongoClient() nicht
      steht auch im großen roten Kasten im Handbuch bei MongoClient ...
      This extension that defines this class is deprecated. Instead, the MongoDB extension should be used.

      Kommentar


      • #4
        Erstmal vielen Dank euch beiden.

        Bei meiner Version handelt es sich um 3.2.11 und ja - dass dieser Befehl ausgestorben ist, hab ich dem auch entnommen.

        Mein Problem ist, ich finde kaum sinnvolle Beispiele für die neue Schreibweise für PHP7.
        Mein PC ist korrekt konfiguriert, neustes Ubuntu, neuster Apache, neustes PHP und neustes MongoDB-System. Alles neu aufgesetzt und neuste Quellen.
        Ich würde ja PHP5 installieren, nur damit die Beispiele aus dem Internet funktionieren, wenn ich könnte, aber das Ganze sind die Standard-Quellen von Ubuntu.

        Habt ihr mal was passendes einfaches kurzzeiliges selbsterklärendes, einfach was, wo man einen simplen Wert in die Datenbankt geschrieben bekommt und diesen anschließend wieder raus bekommt?! Ich such mir hier einen Wolf und finde nix gescheites, was mir das Ganze einfach verständlich erklärt.

        Habt ihr Beispielcodes für simple Datenbank-Einträge und zum Auslesen der Daten?






        Kommentar


        • #5
          Habe damit noch nie etwas zu tun gehabt aber geh doch mal alles der Reihe nach durch. Es gibt dort auch ein Tutorial und schon Benutzerkommentare dazu.
          Was ich beim Überfliegen gesehen habe ist, dass du openssl benötigst. und auch einiges in der php.ini muss du prüfen, steht aber alles im Handbuch.

          Kommentar


          • #6
            Das wars, was ich suchte...

            // WRITING
            PHP-Code:
            $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

            $bulk = new MongoDB\Driver\BulkWrite;
            $bulk->insert(['Vorname' => 'Bugs','Nachname' => 'Bunny']);
            $manager->executeBulkWrite('staff.address'$bulk);

            $bulk = new MongoDB\Driver\BulkWrite;
            $bulk->insert(['Vorname' => 'Susi','Nachname' => 'Sorglos']);
            $manager->executeBulkWrite('staff.address'$bulk); 
            // READING
            PHP-Code:
            $filter = [];
            $options = [
            'projection' => ['_id' => 0]
            ];
            $query = new MongoDB\Driver\Query($filter$options);
            $cursor $manager->executeQuery('staff.address'$query);
            foreach (
            $cursor as $document) {
            $data_to_encode $document;

            $json json_encode($data_to_encode);
            echo 
            $json.'<br/>';

            //var_dump($document);


            // RESULT
            Code:
            {"Vorname":"Bugs","Nachname":"Bunny"}
            {"Vorname":"Susi","Nachname":"Sorglos"}

            Kommentar


            • #7
              Danke fürs posten.
              Mal ne Frage nebenbei, warum nutzt Du nicht direkt $document für json_encode(), anstatt das nochmal in $data_to_encode zu kopieren?
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                War nur ein Beispielcode, hatte ihn noch nicht aufgehübscht

                Kommentar

                Lädt...
                X