gpt4 book ai didi

php - MongoDB 与 PHP 聚合 - 按日期分组

转载 作者:可可西里 更新时间:2023-11-01 09:13:46 26 4
gpt4 key购买 nike

我在 MongoDB 中使用 aggregatePHP。代码如下:

$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 的东西。

不幸的是,这不起作用。有什么想法吗?

谢谢。

最佳答案

您可以投影出这些部分,然后对它们进行分组,以使您能够对整个日期进行分组:

$results = $c->aggregate(array(
array(
'$project' => array(
'year' => array('$year' => '$executed' ),
'month' => array('$month' => '$executed' ),
'day' => array('$dayOfMonth' => '$executed')
),
),
array(
'$group' => array(
'_id' => array('year' => '$year', 'month' => '$month', 'day' => '$day'),
'count' => array('$sum' => 1)
),
),
array(
'$sort' => array(
'_id.year' => 1,
'_id.month' => 1,
'_id.day' => 1
),
),
array(
'$limit' => 30
)
));

像这样的东西应该可以让你进行排序,正如你所说:$year-$month-$dayOfMonth

关于php - MongoDB 与 PHP 聚合 - 按日期分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com