Ankündigung

Einklappen
Keine Ankündigung bisher.

MongoDB mit MongoDB\Driver\Manager und MongoDB\Driver\Command

Einklappen

Neue Werbung 2019

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

  • MongoDB mit MongoDB\Driver\Manager und MongoDB\Driver\Command

    Hey Leute,
    ich versuche mit MongoDB und PHP einen Webserver zu programmieren auf den ich per App dann zugreife und weiter verarbeite. Um MongoDB zum Laufen zu kriegen bin ich unteranderem diesem Tutorial https://zetcode.com/db/mongodbphp/#:...0one%20element. gefolgt. Kommt es zu dem Bereich "Daten lesen" erhalte ich den Fehler "Empty command document", wenn ich den Befehl $res = $mng->executeCommand("projektai.cocktails", $querry); ausführe(projektai ist meine Datenbank und cocktails die Collection). Nutze ich aber die Mongoshell mit db.cocktails.findOne(...) bekomme ich den Eintrag angezeigt, den ich auch selber angelegt habe. Hat jemand eine Idee was ich noch machen kann?

  • #2
    Ich würde mal die Ursache in $querry vermuten, warum auch immer Query hier falsch geschrieben ist.

    Kommentar


    • #3
      ich habe hier mal mein ganzen Code. Vielleicht siehst du den Fehler:
      PHP-Code:
      <?php

      try {

      $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");
      echo 
      "Manager<br>";

      $query = new MongoDB\Driver\Command([]);
      echo 
      "Command<br>";

      $res $mng->executeCommand("projektai.cocktails"$query);
      echo 
      "execute Command<br>";

      foreach (
      $res as $row) {
      echo 
      $row->name;
      }

      } catch (
      MongoDB\Driver\Exception\Exception $e) {

      echo 
      "Fehler: "$e->getMessage(), " in Zeile "$e->getLine(),"<br>";
      }

      ?>

      Kommentar


      • #4
        Ich hab ja von MongoDB praktisch gar keine Ahnung, aber der Command schaut ziemlich leer aus, was auch die Fehlermeldung aussagt. Also ich würd da mal 1 + 1 zusammen zählen und sagen, dass der Parameter im Command()-Aufruf irgendwas beinhalten sollte.

        Aber warum nennst du die Variable $query, wenn du einen Command darin speicherst? Möchtest nicht eher einen Query statt einem Command?

        Kommentar


        • #5
          ne wenn man alles auswählen will (wie select *) gibt man nur [] an
          aber ich hab das problem gelöst

          Kommentar


          • #6
            Und die Lösung ist geheim, oder willst du sie uns verraten?

            Kommentar


            • #7
              Wahrscheinlich kommst du sogar mit einer SQlite DB aus, ist schneller und du hast nur eine Datei bei der Sicherung zu berücksichtigen.
              SQlite ist Bestandteil von PHP, da musst du nicht mal was installieren.

              Kommentar

              Lädt...
              X