php7显示文件存储在mongodb 3.4中

时间:2017-11-11 17:00:17

标签: php mongodb

我是php和mongodb的新手。我在Ubuntu 16.04.3 LTS上安装了php7.0和mongo 3.4.10。

我可以输入mongo cli命令显示所需的文件:     db.testcollection.find({_id:'superid'}).pretty()

它给了我这个结果:

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

但我尝试使用这个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命令类似的mongo查询结果?

1 个答案:

答案 0 :(得分:0)

问题是: 我在mongo shell中使用这些命令创建了一个名为test的新数据库:

contain: strict

所以db的路径是test.testcollection而不是db.testcollection。

当我更正这样的相应行时:

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

它按预期工作。

我对mongo shell(cli)感到困惑,它给了我正确的结果而不需要指定数据库名称(即使在注销mongo shell并再次登录之后)。

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