2016-06-18 6 views
0

Ich habe Abfrage in MongoDB erstellt. In MongoChef erzeugt diese Abfrage mehr als 10.000 Datensätze in weniger als 2 Sekunden. Jetzt möchte ich diese Abfrage in PHP ausführen. So weiß ich nicht, wie man Frage in PHP schreibt, während ich verschiedene Dokumente im Internet lese, aber verwirrt, wie man es einführt.Wie schreibe ich MongoDB Abfrage in PHP-Kern?

db.PMS.aggregate(
[ 
    {$project: 
     {EventTS:1,MainsPower:1,PanelID:1} 
    }, 
    {$unwind: 
     {path:"$MainsPower",includeArrayIndex:"arrayIndex",preserveNullAndEmptyArrays:true} 
    }, 
    { $match: { "MainsPower":{$ne:null}}}, 
    { $match: { "EventTS":{$gt:new Date("2016-01-01")}}}, 
    {$project: 
     {MainsPower:1, 
      PanelID:1, 
      timestamp:{"$add": 
       [{'$subtract' : ["$EventTS",new Date("1970-01-01")]}, 
       {"$multiply":[60000,"$arrayIndex"]} 
       ]} 
      } 
    } 
    ] 
); 
+0

Welche * Treiber * verwenden Sie? Hast du das gelesen? http://php.net/manual/en/book.mongo.php – m02ph3u5

+0

@ m02ph3u5 Ich benutze mongodb version: 1.1.7 – Amit

Antwort

1

Sie können einige verfügbare Ressourcen in der offiziellen php-Dokumentation verwenden. Eine Zuordnung von SQL-Abfragen in PHP zu MongoDB-Abfragen in PHP finden Sie here. Auch ich habe ein Demo-Login und Registrierung Skript an meinem GitHub. Sie können diese in this Repo anzeigen.

0

Wenn Sie MongoDB PHP Library verwenden sollten Sie in der Lage sein, etwas Ähnliches wie dies zu tun:

$mongo = new MongoClient(); 

$database = $mongo->examples; 
$collection = $database->PMS; 

$pipeline = [ 
    [ 
     '$project' => [ 
      'EventTS' => 1, 
      'MainsPower' => 1, 
      'PanelID' => 1, 
     ] 
    ], 
    [ 
     '$unwind' => [ 
      'path' => '$MainsPower', 
      'includeArrayIndex' => 'arrayIndex', 
      'preserveNullAndEmptyArrays' => true 

     ] 
    ], 
    ... 
]; 

$cursor = $collection->aggregate($pipeline); 
+0

In $ match muss ich dynamische Datum übergeben, so wie dynamische Datumsvariablen in Pipeline übergeben – Amit

Verwandte Themen