我在MongoDB
与PHP
使用aggregate
。代码如下:MongoDB与PHP汇总 - 由日期组
$results = $c->aggregate(array(
array(
'$project' => array(
'day' => array('$dayOfYear' => '$executed')
),
),
array(
'$group' => array(
'_id' => array('day' => '$day'),
'count' => array('$sum' => 1)
),
),
array(
'$sort' => array(
'_id' => 1
),
),
array(
'$limit' => 30
)
));
的问题,这一点,是$dayOfYear
不排序正确的,因为它按2然后3然后345,346 ...我需要它是迄今上升。所以,基本上,而不是简单地做$dayOfYear
我需要类似$year-$month-$dayOfMonth
。
不幸的是,这是行不通的。有任何想法吗?
谢谢。
非常感谢您的工作。有没有办法在MongoDB级别包含0行的日期。基本上我想显示过去30天,但是上面返回30行,但不是最后30天。 – Justin
@Justin好的问题,但不是从我所知道的,因为依靠行日期实际上填充行。我相信你现在需要做这个客户端。 – Sammaye
@Sammaye - 我已经建议并在上面的代码中编辑。您当前的代码,因为它是.i.e。 ''$ sort'=> ['_id'=> 1]'只会在白天进行排序,并且会导致如下命令 - “1/10/2015,2015/2/10,2015/4/9, 6/9/2015 ...等等 – ShalomSam