MongoDB 按日期搜索在 php7 中不起作用
MongoDB search by date not working in php7
我在 php 5.6
中完成了计数查询
$start_time = new MongoDate(strtotime('2018-09-15 00:00:00'));
$end_time = new MongoDate(strtotime('2018-09-20 23:59:59'));
$m = new Mongo("mongodb://localhost:27017");
$mongodb = $m->adplaydsp;
$query['created_at'] = array('$gte' => $start_time, '$lte' => $end_time);
$total_request = $mongodb->bid_request->find($query)->timeout(-1)->count();
但是当我用 PHP 7 语法重写代码时,我无法按日期计算
$start_time = new MongoDB\BSON\UTCDateTime((new DateTime('2018-09-15 00:00:00')));
$end_time = new MongoDB\BSON\UTCDateTime((new DateTime('2018-09-20 23:59:59')));
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$reqCommand = new \MongoDB\Driver\Command(["count" => "bid_request", "query" => ['gte' => $start_time, 'lte' => $end_time]]);
$reqCount = $manager->executeCommand('adplaydsp', $reqCommand);
$reqTotal = $reqCount->toArray();
我在命令中遗漏了日期字段参数。解决方法如下
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$reqCommand = new \MongoDB\Driver\Command(["count" => "bid_request", "query" => ['created_at' => ['$gte' => $start_time, '$lte' => $end_time]]]);
$reqCount = $manager->executeCommand('adplaydsp', $reqCommand);
$total_request = $reqCount->toArray()[0]->n;
我在 php 5.6
中完成了计数查询$start_time = new MongoDate(strtotime('2018-09-15 00:00:00'));
$end_time = new MongoDate(strtotime('2018-09-20 23:59:59'));
$m = new Mongo("mongodb://localhost:27017");
$mongodb = $m->adplaydsp;
$query['created_at'] = array('$gte' => $start_time, '$lte' => $end_time);
$total_request = $mongodb->bid_request->find($query)->timeout(-1)->count();
但是当我用 PHP 7 语法重写代码时,我无法按日期计算
$start_time = new MongoDB\BSON\UTCDateTime((new DateTime('2018-09-15 00:00:00')));
$end_time = new MongoDB\BSON\UTCDateTime((new DateTime('2018-09-20 23:59:59')));
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$reqCommand = new \MongoDB\Driver\Command(["count" => "bid_request", "query" => ['gte' => $start_time, 'lte' => $end_time]]);
$reqCount = $manager->executeCommand('adplaydsp', $reqCommand);
$reqTotal = $reqCount->toArray();
我在命令中遗漏了日期字段参数。解决方法如下
$manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017");
$reqCommand = new \MongoDB\Driver\Command(["count" => "bid_request", "query" => ['created_at' => ['$gte' => $start_time, '$lte' => $end_time]]]);
$reqCount = $manager->executeCommand('adplaydsp', $reqCommand);
$total_request = $reqCount->toArray()[0]->n;