所以在我的MongoDB实例中有这个结构
{
"post_body": "test",
"author": "test1",
"comments":[
{
"comment_body": "comment test",
"comment_author": "test2",
"replies": [
{
"reply_body": "reply test1",
"reply_author": "test3"
},
{
"reply_body": "reply test2",
"reply_author": "test2"
}
]
}
]
}
我想得到评论+回复的总数
所以我想要的输出应该是
{
"post_body": "test"
"author": "test1",
"comment_count": 3
}
到目前为止,使用$project
只返回注释总数。我想得到评论+回复的总数
使用Aggregation Pipeline我们可以得到期望的结果
下面的查询使用管道阶段$project、$unwind和管道操作符$size和$sum
聚合查询的第一部分使用$project,我们只是将所需的属性投影到下一个阶段,还将查找注释数组的大小。注释数组的大小存储在临时属性
comments_size
第二部分使用$unwind来断开
comments
和comments.replies
中的嵌套数组,comments
数组被解除,而comments.replies
数组保持不变第三部分使用$project查找回复的大小,并将其存储在临时属性
replies_size
第四部分也是最后一部分再次使用$project和
comments_size
和replies_size
的$sum来获得所需的结果相关问题 更多 >
编程相关推荐