$reduce
を使用できます
および$concatArrays
「マージ」 内部の「配列の配列」を単一のリストにまとめ、 $size
その。次に、単に $add
2つの結果を一緒に:
db.posts.aggregate([
{ "$match": { _id:ObjectId("5dbdacc28cffef0b94580dbd") } },
{ "$addFields": {
"totalBoth": {
"$add": [
{ "$size": "$comments" },
{ "$size": {
"$reduce": {
"input": "$comments.replies",
"initialValue": [],
"in": {
"$concatArrays": [ "$$value", "$$this" ]
}
}
}}
]
}
}}
])
「配列の配列」は$comments.replies
のような式の効果であることに注意してください 、したがって、これらを単一の配列にして、すべての要素を測定できるようにする操作。