mongo 컬렉션에 다음 형식의 데이터가 있습니다.
{
"response":[
{
"_responsedata":{
"Error":{
"message":"BMERROR001 - Something went wrong. Please check the error logs",
"statusCode":"400",
"reasonCode":"BMERROR001"
}
},
"_responsemeta":{
"status":"400"
}
},
{
"_responsedata":{
"Error":{
"message":"BMERROR001 - Something went wrong. Please check the error logs",
"statusCode":"400",
"reasonCode":"BMERROR001"
}
},
"_responsemeta":{
"status":"400"
}
},
{
"_responsedata":{
"Error":{
"message":"BMERROR002 - Something went wrong. Please check the error logs",
"statusCode":"400",
"reasonCode":"BMERROR002"
}
},
"_responsemeta":{
"status":"400"
}
},
{
"_responsedata":{
"name":"name1",
"col1":"value1"
},
"_responsemeta":{
"status":"204"
}
},
{
"_responsedata":{
"name":"name2",
"col1:":"value2"
},
"_responsemeta":{
"status":"201"
}
},
{
"_responsedata":{
"Error":{
"message":"BMERROR003 - Something went wrong. Please check the error logs",
"statusCode":"400",
"reasonCode":"BMERROR003"
}
},
"_responsemeta":{
"status":"400"
}
}
]
}
이것은 하나의 문서 형식이며 동일한 형식의 많은 문서가 있습니다. 이제이 문서를 D3를 사용하여 시각화 할 수있는 형식으로 만들기 위해 reasonCode
필드를 기준으로 그룹화해야 합니다. 따라서 결과적으로 다음과 같은 것이 필요합니다.
{
"errors": [
{
"code":"BMERROR001",
"count":2
},
{
"code":"BMERROR002"
"count":"1"
},
{
"code":"BMERROR003"
"count":"1"
}
]
}
다음 집계로 시도했지만 배열과 개수로 이유를 제공하고 있습니다.
[{$group: {
_id:{
"reason":"$response._responsedata.Error.reasonCode"
},
count:{$sum:1}
}}]
reasonCode
올바르게 그룹화 된 카운트를 어떻게 취할 수 있습니까?
당신은 필요 먼저 당신이 적용 할 수있는 배열 중첩에 .$unwind
response
$group
reasonCode
[
{ $unwind: "$response" },
{
$group: {
_id: {
reason: "$response._responsedata.Error.reasonCode"
},
count: { $sum: 1 }
}
}
]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다