我正在尝试使用此代码在MongoDB上的PHP中查询文档:
$mongo = new MongoDB\Driver\Manager("mongodb://user:pwd@ip:27017/db");
$filter = [
"type" => "GSM",
"date" => [ '$gte' => new MongoDB\BSON\UTCDateTime(1555372800000) ]
];
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $mongo->executeQuery('db.collection', $query);
我可以连接到数据库,但是我得到一个空光标,没有结果。 如果我排除数组中的“日期”元素,一切正常,我可以在光标中看到文档并对其进行迭代。 这是var_dump($ filter)结果:
array(2) {
["type"]=>
string(3) "GSM"
["date"]=>
array(1) {
["$gte"]=>
object(MongoDB\BSON\UTCDateTime)#3 (1) {
["milliseconds"]=>
string(13) "1555372800000"
}
}
}
MongoDB Compass上的相同过滤器(包括“ date”参数)返回了大量文档,这是相应的过滤器:
{type:'GSM', date:{$gte: new ISODate('2019-04-16T00:00:00Z')}}
我该如何解决?
环境的详细信息: Ubuntu 18.04 LTS PHP 7.2.17 libmongoc捆绑的版本=> 1.13.0 MongoDB 3.4.19