Mongodb monogdb中的$facet聚合
我的示例数据如下所示:Mongodb monogdb中的$facet聚合,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我的示例数据如下所示: Category response Privacy 1 Mobile 1 Privacy 1 Privacy 0 Phishing 1 Mobile 1 Desktop 1 Desktop 0 Security 1 我已经创建了一个对组所有类别的聚合查询,并获得如下计数: db.cmi5DashboardData.ag
Category response
Privacy 1
Mobile 1
Privacy 1
Privacy 0
Phishing 1
Mobile 1
Desktop 1
Desktop 0
Security 1
我已经创建了一个对组
所有类别
的聚合查询,并获得如下计数:
db.cmi5DashboardData.aggregate([
{$group:{_id:'$category',knt:{$sum:'$response'}}},
{$sort:{knt:-1}},
{$project:{_id:0,category:'$_id',count:'$knt'}}
])
Category count
Privacy 2
Mobile 2
Others 3
我得到如下输出:
Category count
Privacy 2
Mobile 2
Phishing 1
Desktop 1
Security 1
但是,我需要将该数据分组到下一级,以获得如下输出:
db.cmi5DashboardData.aggregate([
{$group:{_id:'$category',knt:{$sum:'$response'}}},
{$sort:{knt:-1}},
{$project:{_id:0,category:'$_id',count:'$knt'}}
])
Category count
Privacy 2
Mobile 2
Others 3
此处,前两个类别(具有较高的计数,即隐私和移动)被假定为强类别,其余所有类别被假定为弱点,并被称为其他类别<代码>其他应动态计算,这是除强数据点之外的所有其他数据点的相加。在这方面有什么建议或建议会有帮助吗
注意:我使用的是mongodb 3.6
更新:JSON样本
{Category:'Phishing', response:1),
{Category:'Security', response:1),
{Category:'Privacy', response:1),
{Category:'Privacy', response:1),
{Category:'Privacy', response:0),
{Category:'Mobile', response:1),
{Category:'Mobile', response:1),
{Category:'Desktop', response:1),
{Category:'Desktop', response:0),
您应该尝试
$facet
聚合以获得所需的结果,该结果非常容易与limit
和skip一起使用
您可以检查输出
如果你把mongodb样本收集放在这里会更好我想你是在问JSON样本,如果是的话,我已经更新了问题。请查看问题中的更新部分以获取示例。