我有以下测试代码,看看我的php服务器是否配置正确以查询mongo数据库:
<?php
//http://php.net/manual/en/class.mongodb-driver-query.php/
$mongo = new \MongoDB\Driver\Manager('mongodb://127.0.0.1/widget:27017');
$id = new \MongoDB\BSON\ObjectId("582f629a6b6347a422abb8ad");
$filter = ['_id' => $id];
$options = [];
$query = new \MongoDB\Driver\Query($filter, $options);
$rows = $mongo->executeQuery('db.new_widgets', $query);
var_dump($query);
foreach ($rows as $document) {
var_dump($document);
}
?>
运行时,不返回任何文件。 这就是我在mongo日志中看到的:
2017-04-19T15:06:51.562+0000 I NETWORK [thread1] connection accepted from 127.0.0.1:56870 #17 (9 connections now open)
2017-04-19T15:06:51.562+0000 I NETWORK [conn17] received client metadata from 127.0.0.1:56870 conn17: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.5.5 / 1.2.8" }, os: { type: "Linux", name: "Linux", version: "3.5.0", architecture: "x86_64" }, platform: "cfg=0x30c9 posix=200809 stdc=201112 CC=GCC 6.3.0 CFLAGS="-Os -fomit-frame-pointer" LDFLAGS="-Wl,--as-needed" / PHP 7.1.3" }
apache错误日志中没有错误。
在网页上,就$ query转储而言,这就是我所看到的:
object(MongoDB\Driver\Query)#3 (3) { ["filter"]=> object(stdClass)#6 (1) { ["_id"]=> object(MongoDB\BSON\ObjectID)#5 (1) { ["oid"]=> string(24) "582f629a6b6347a422abb8ad" } } ["options"]=> object(stdClass)#7 (0) { } ["readConcern"]=> NULL }
当我通过mongo shell /命令行尝试相同的查询时,我得到的测试记录没有问题。 只是想知道我错过了什么。 我用mongodb 3.4运行php7
我目前正在调查mongo是否有冗长的日志记录。
感谢。
答案 0 :(得分:0)
我将连接字符串更改为:
$mongo new \MongoDB\Driver\Manager('mongodb://localhost:27017');
然后查询:
$rows = $mongo->executeQuery('widgets.new_widgets', $query);