2017-11-11 148 views
0

我對php和mongodb很新。我已經在Ubuntu 16.04.3 LTS上安裝了php7.0和mongo 3.4.10。php7顯示存儲在mongodb中的文件3.4

我可以通過輸入蒙戈CLI命令顯示所需的文檔: db.testcollection.find({_id:'superid'}).pretty()

它給了我這樣的結果:

{ "_id" : "superid", "record" : "whatever" }

但我tryig與此PHP腳本顯示從MongoDB的集合文件:

<?php 

    $mongo = new \MongoDB\Driver\Manager(); 
    $filter = ['_id' => 'superid']; 
    $options = []; 
    $query = new \MongoDB\Driver\Query($filter, $options); 
    $rows = $mongo->executeQuery('db.testcollection', $query); 
    foreach ($rows as $document) { 
     print_($document); 
     var_dump($document); 
     echo $document; 
    } 

    echo "The END" 
    ?> 

這隻顯示「結束」。

我很想念我的PHP腳本同樣顯示蒙戈查詢結果爲CLI命令?

回答

0

的問題是: 我創建了使用此命令在蒙戈外殼名爲test的新DATABSE:

use test; 
db.createCollection("testcollection"); 
db.testcollection.insert({ "_id" : "superid", "record" : "whatever"}); 

所以路徑分貝是test.testcollection不db.testcollection。

當我糾正相應的線路是這樣的:

$rows = $mongo->executeQuery('test.testcollection', $query); 

它按預期工作。

我被給出而不需要指定數據庫名稱(即使註銷蒙戈外殼並重新登錄)我正確的結果蒙戈外殼(CLI)混淆。

另一方面,你必須在php中指定dbname.collectionname(有意義):)