gpt4 book ai didi

MongoDB 聚合计算小时范围内的产品数量

转载 作者:行者123 更新时间:2023-12-05 06:50:21 24 4
gpt4 key购买 nike

我正在使用 mongodb 图表。是否可以获取时间范围内的产品数量(例如:12:00am - 5:00AM)

例如,我在凌晨 3:00 添加了 2 个产品,然后我将在凌晨 4:00 添加 5 个产品。

我正在根据它的 createdAt 字段来计算产品。

我有这样的示例数据:

Products: {
"_id": {
"$oid": "603c62272aacbc0017e2e4b5"
},
"amount": 110,
"user": {
"$oid": "5f7408cf7889580017c369a1"
},
"transaction_id": "cZ3fgffFI",
"createdAt": {
"$date": "2021-03-01T03:40:23.300Z"
},
"updatedAt": {
"$date": "2021-03-01T04:13:25.908Z"
},
"__v": 0,
},
{
"_id": {
"$oid": "603c62272aacbc0017e2e4b5"
},
"amount": 110,
"user": {
"$oid": "5f7408cf7889580017c369a1"
},
"transaction_id": "cZ3fgffFI",
"createdAt": {
"$date": "2021-03-01T03:40:23.300Z"
},
"updatedAt": {
"$date": "2021-03-01T04:13:25.908Z"
},
"__v": 0,
},
{
"_id": {
"$oid": "603c62272aacbc0017e2e4b5"
},
"amount": 110,
"user": {
"$oid": "5f7408cf7889580017c369a1"
},
"transaction_id": "cZ3fgffFI",
"createdAt": {
"$date": "2021-03-01T03:40:23.300Z"
},
"updatedAt": {
"$date": "2021-03-01T04:13:25.908Z"
},
"__v": 0,
}

输出:

我正在使用 createdAt 字段对产品进行计数。

3:00 AM 2 个产品凌晨 4:00 5 个产品

最佳答案

您可以简单地使用按小时分组来获取每小时的计数数据,如下所示,

[{
'$match':{
'$and':[ {'createdAt':{'$gte':'2021-03-08T00:00:00.000Z'}},{'createdAt':{'$lte':'2021-03-08T05:00:00.000Z'}}]
}
},
{
'$project': {
'hours': {
'$hours': 'createdAt'
}
}
}, {
'$group': {
'_id': {
'hours': '$hours',
},
'total': {
'$sum': 1
},
'hours': {
'$hours': '$hours'
}
}
}
]

此外,您可以使用 match 为您需要的其他过滤器添加任何其他条件。

关于MongoDB 聚合计算小时范围内的产品数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66417555/

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