node.js - 如何通过在猫鼬中分组返回两个匹配条件的计数值?
问题描述
我希望我的输出 json 如下所示,
[ {
"_id": "IT",
"count 1": 1,
"count 2": 1,
},
{
"_id": "CSE",
"count1": 1,
"count2": 2,
},
]
我在猫鼬中尝试了以下查询
{
$match: {
riskstatus: { $in: ["Closed", "Deffered"] },
riskstatus: { $in: [ "Open"] },
}
},
{
"$group": {
"_id": "$phase",
"count1": { "$sum": 1 },
"count2": { "$sum": 1 },
},
}
我的输入集合是
{"_id":"5df5ca73bb1c4526948e2421","comment":"test","status":"Open","phase":"CSE"}
{"_id":"5df5ca73bb1c4526948e2422","comment":"test","status":"closed","phase":"IT"}
{"_id":"5df5ca73bb1c4526948e2422","comment":"test","status":"Closed","phase":"CSE"}
{"_id":"5df5ca73bb1c4526948e2422","comment":"test","status":"Open","phase":"IT"}
{"_id":"5df5ca73bb1c4526948e2422","comment":"test","status":"Open","phase":"CSE"}
如何检索具有上述匹配条件的同一组的两个计数值以实现此结果?
我试过的最新的是
Risk.aggregate([
{ $match: { $or: [ { status: {$in: ["Closed", "Deffered"]} }, { status: {$in: ["Open"] } } ] } },
{
"$group": {
"_id": "$phase",
" count1": { "$sum": 1 },
"count2": { "$sum": 1 },
},
}
解决方案
请使用该查询
db.posts.aggregate(
{
$group: {
_id: { 'id': '$phase', 'status': '$status' },
count_1: { '$sum': 1 },
}
},
{ $project: { '_id': 0, 'depart': '$_id.id', 'status': '$_id.status', 'count_1': 1 } }
, {
$group: {
_id: '$depart',
data: {
'$push': {
'depart': '$depart',
'count_1': {
$cond: [{ $eq: ["$status", 'Open'] }, '$count_1', 0]
},
'count_2': {
$cond: [{ $eq: ["$status", 'Closed'] }, '$count_1', 0]
}
,
'count_3': {
$cond: [{ $eq: ["$status", 'Deffered'] }, '$count_1', 0]
}
},
}
}
},
{ $project:
{'name':'$_id','_id':0,
openCount: { $max: "$data.count_1"},
Othercount: {
$add:[
{$max: "$data.count_2"},
{$max: "$data.count_3"}]
}
}}
)
推荐阅读
- python - Celery 注册了任务,但 beat 没有从已安装的应用程序中安排任务
- c++ - 模板类的嵌套类中的友元运算符
- javascript - 如何以角度实现模板变量?
- cairo - cairo_debug_reset_static_data() 使用 pango 库的问题
- c# - 使用 Open XML C# 在 Word 文件中为现有文本添加上标
- postgresql - postgres如何正确使用max函数
- cmake - 如何从 find_package 设置的 CMake 变量中删除路径
- shortcut - 我的 Siri Custom Intent 没有显示 Siri Shortcuts App 选项?
- postgresql - PostgreSQL 错误:在表上插入或更新违反外键约束
- android - Windows/React Native 无法创建 ADB Bridge 错误