2017-04-19 77 views
0

我有以下的测试代码,看看我的PHP服务器被正确配置来查询数据库蒙戈:通过PHP 7的mongodb查询失败默默?

<?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); 
} 

?> 

当我运行此,不返回任何文档。 这是我看到蒙戈日志:

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的错误日志中没有错误。

在网页上,只要$查询转储,这是我所看到的:

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 } 

当我尝试通过蒙戈外壳/命令行相同的查询,我得到的测试记录回没问题。 只是想知道我错过了什么。 我正在用MongoDB运行php7 3.4

我目前正在调查mongo是否有详细的日志记录。

谢谢。

回答

0

我改变了连接字符串看起来像这个:

$mongo new \MongoDB\Driver\Manager('mongodb://localhost:27017'); 

然后查询:

$rows = $mongo->executeQuery('widgets.new_widgets', $query);