mongodb聚合匹配日期

时间:2018-08-17 11:50:37

标签: mongodb mongodb-query

我有类似

的数据
{
    "_id" : ObjectId("5b63e593f033ab66fa25a142"),
    "percent_change_1h" : 0.37,
    "percent_change_24h" : -3.91,
    "percent_change_7d" : -7.08,
    "last_updated" : 1533273443,
    "created_at" : "2018-08-03 05:18:11",
    "updated_at" : "2018-08-03 05:18:11"
}

它的created_at日期是这样的“ 2018-08-03 05:18:11” 但我可以在聚合函数(如“ 2018-08-03”)中传递日期 数据不在此匹配中

我无法使用$ gte或$ lte,因为仅获取给定的日期数据 查询在这里

$date = "2018-08-15";

$filters = ['$match'=>[
    'quotes'=>$quotes,
    'created_at' => $date]
];

$join = ['$lookup'=>[
    'from' => "cryptocurrencies_list", 
    'localField'=> "crypto_list_id",
    'foreignField'=> "_id",
    'as'=>"listdata"]
];

$limits = ['$limit'=>10];
$query = $detailscollection->aggregate([$filters,$join,$limits]);

1 个答案:

答案 0 :(得分:0)

您可以尝试以下汇总

$detailscollection->aggregate([
  [
    '$addFields' => [
      'date' => [
        '$dateToString' => [
          'date' => [
            '$dateFromString' => [
              'dateString' => '$created_at',
              'timezone' => 'America/New_York'
            ]
          ],
          'format' => '%Y-%m-%d'
        ]
      ]
    ]
  ],
  [
    '$match' => [
        'date' => $date, 'quotes' => $quotes
    ]
  ]
])
相关问题