2017-11-11 13 views
0

私はphpとmongodbの新機能です。私はUbuntu 16.04.3 LTSにphp7.0とmongo 3.4.10をインストールしました。php7 mongodb 3.4に保存されているドキュメントを表示

私はMongoのCLIコマンド入力することにより、所望の文書を表示することができます。

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

しかし、私はtryigこのPHPスクリプトでMongoDBのコレクションからドキュメントを表示するために午前:それは私にこの結果を与える db.testcollection.find({_id:'superid'}).pretty()

<?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" 
    ?> 

「終了」と表示されます。

cliコマンドと同様にmongoのクエリ結果を表示するために私のPHPスクリプトには何が足りないのですか?

答えて

0

問題ました: 私は、これはモンゴシェルでコマンドを使用してテストと呼ばれる新しいdatabseを作成しました:

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

デシベルへだから、パスがtest.testcollection db.testcollectionませんでした。

私はこのような適切な行を補正する場合:

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

を期待どおりに動作します。

私はmongo shell(cli)に混乱していました。これは、データベース名を指定する必要なく(ログオフしたmongoシェルとログイン後にも)私に正しい結果をもたらします。

一方、PHPではdbname.collectionnameを指定する必要があります(意味があります):

関連する問題