2017-04-19 65 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);