【问题标题】:MongoDB search by date not working in php7MongoDB按日期搜索在php7中不起作用
【发布时间】:2019-02-27 14:44:11
【问题描述】:

我已经在 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();

【问题讨论】:

    标签: mongodb php-7


    【解决方案1】:

    我错过了命令中的日期字段参数。下面的解决方案

    $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;
    

    【讨论】:

      猜你喜欢
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多