gpt4 book ai didi

MongoDB - 计算包含数组元素的数组中的值的$sum

转载 作者:行者123 更新时间:2023-12-05 06:04:23 25 4
gpt4 key购买 nike

我有一个聚合查询生成一个包含数组元素的数组。我如何 $sum 这些值并产生类似于以下内容的输出:

  { "additionalReminders": 7 }

这是一个数据结构的例子。注意一些数组元素是空的,应该被忽略或计为 0:

  {
"additionalReminders": [
[
"1",
"1"
],
[],
[],
[
"1"
],
[],
[
"1"
],
[],
[
"1"
],
[],
[
"1"
],
[],
[],
[
"1"
]
]
}

Mongo Playground : https://mongoplayground.net/p/BjSU_oYC8KG

最佳答案

这是您要查找的内容:

db.collection.aggregate([
{
"$unwind": "$additionalReminders"
},
{
"$unwind": "$additionalReminders"
},
{
$group: {
_id: null,
"additionalReminders": {
$sum: {
"$toInt": "$additionalReminders"
}
}
}
},
{
$project: {
_id: false,
additionalReminders: true
}
}
])

Playground :https://mongoplayground.net/p/JInbHAmc_yV

我们的想法是将您的场展开几次以获得此输出:

...
{
"_id": ObjectId("5a934e000102030405000000"),
"additionalReminders": "1"
},
{
"_id": ObjectId("5a934e000102030405000000"),
"additionalReminders": "1"
},
{
"_id": ObjectId("5a934e000102030405000000"),
"additionalReminders": "1"
},
...

然后这只是对 $additionalReminders 字段求和的简单问题,但不是在我们将其转换为 Int 之前。

关于MongoDB - 计算包含数组元素的数组中的值的$sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66305799/

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