新的MongoDB PHP驱动程序:如何使用MongoDB \ Driver \ Query显示多个文档

时间:2017-07-13 10:35:23

标签: php mongodb mongodb-query

我正在使用PHP的新mongodb驱动程序并使用查询想要显示所有相关文档。但它只返回一个文档或布尔值(false)作为值。

我想要返回满足条件的所有mongo文档。尝试使用限制参数选项,但无济于事。

以下是我的代码:

<?php
ini_set("display_errors",1);
ini_set('error_reporting', E_ALL);
//$filter = [ 'job_id' => [ '$gte' => 1 ], ];
//$options = [ 'maxScan' => 400 ];
$mongo = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]); 
$rows = $mongo->executeQuery('sag.jobs', $query, $readPreference); // $mongo contains the connection object to MongoDB
//var_dump($rows);
$abc=current($rows->toArray());

var_dump($rows);
//print_r($abc);
var_dump($abc);
?>

与option和filters参数一起使用,并作为空参数使用:

Mongo表格内容:

> { "_id" : ObjectId("596608c7f4bb66cead9762d6"), "job_id" : 1 } { "_id"
> : ObjectId("596608caf4bb66cead9762d7"), "job_id" : 2 } { "_id" :
> ObjectId("596608cef4bb66cead9762d8"), "job_id" : 3 } { "_id" :
> ObjectId("596608d0f4bb66cead9762d9"), "job_id" : 4 } { "_id" :
> ObjectId("596608d2f4bb66cead9762da"), "job_id" : 5 }

这是我得到的唯一输出:

object(stdClass)#6 (2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectID)#5 (1) {
    ["oid"]=>
    string(24) "596608c7f4bb66cead9762d6"
  }
  ["job_id"]=>
  float(1)
}

1 个答案:

答案 0 :(得分:0)

以下代码行应该以数组形式提供结果:

$client = new MongoDB\Client('mongodb://localhost:27017');
$arr = $client->sag->jobs->find($filter)->toArray();

有关MongoDB \ Collection :: find方法的更多信息,请see here。有关MongoDB \ Drive \ Cursor对象的更多信息,请返回see here