Я пытаюсь запросить документы в PHP на MongoDB с помощью этого кода:
$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);
Я могу подключиться к БД, но я получаю пустой курсор без результатов.
если я исключаю элемент "date" из массива, все в порядке, и я могу видеть документы в курсоре и перебирать его.
это результат 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