【发布时间】:2020-10-19 01:04:58
【问题描述】:
我有一个包含以下对象的数据库结构:
"reactions": {
"????": [
"5f3c569e70441a0017511fe2",
"5f88d49dbf1b850017e28f4e",
"5f488189b0c5970017aa8c7a"
],
"????": [
"5f539086cfb52a00176089ed"
]
}
我希望能够计算“反应次数”(所有嵌套元素的总数) - 所以在这种情况下,预期结果是 4。
我尝试了以下方法,这成功计算了键的数量 - 结果是 2,但不是值的总数 - 应该是 4。
db.collection("posts").aggregate([{
{
$addFields: {
reactionsArray: {
$objectToArray: "$reactions"
}
}
},
{
$addFields: {
numberOfReactions: {
$sum: {
$size: "$reactionsArray.v"
}
}
}
}
])
【问题讨论】:
标签: mongodb mongoose aggregation-framework