gpt4 book ai didi

mongodb - laravel mongodb 中按日期分组

转载 作者:行者123 更新时间:2023-12-03 15:59:41 24 4
gpt4 key购买 nike

我正在使用 mongo 和 laravel。我会按一定时间段(通常是 30 天)获取数据。我想按天对数据进行分组。我尝试过 $project $dayOfMonth 并按 day 分组,但它按月份中的天数顺序对它们进行分组,我想按顺序排序期间的天数。有办法吗?

[
'$match' => [
"created_at" => [
'$gte' => new \MongoDB\BSON\UTCDateTime($thisMonth),
]
],
],
[
'$project' => [
'day' => [
'$dayOfMonth' => [
'date' => '$created_at',
]
],
]

],
[
'$group' => [
'_id' => '$day',
'count' => ['$sum' => 1],
],

],

示例:

  {#940
flag::STD_PROP_LIST: false
flag::ARRAY_AS_PROPS: true
iteratorClass: "ArrayIterator"
storage: array:16 [
"_id" => ObjectId {#933
+"oid": "5b2ff00e35826377be16ff82"
}
"orderNumber" => "10000"
"userName" => "dGFraHRlLTkwMDQ2NDcyOJRbugaZlHWdMR+nCNzaUfY="
"updated_at" => UTCDateTime {#938
+"milliseconds": "1529868539000"
}
"created_at" => UTCDateTime {#939
+"milliseconds": "1529868302000"
}
]
}

最佳答案

您可以使用$dateFromString根据您所需的格式将日期对象转换为字符串。

[ "$match" => [
"created_at" => [ '$gte' => new \MongoDB\BSON\UTCDateTime($thisMonth) ]
]],
[ "$group" => [
"_id" => [ "$dateToString" => [ "format" => "%Y-%m-%d", "date" => "$created_at" ] ],
"count" => [ "$sum" => 1 ]
]]

关于mongodb - laravel mongodb 中按日期分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230104/

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