mongodb에서 필드 이름을 세기는 방법이 있습니까? 필자는 그 안에 다른 임베디드 문서가 포함 된 문서의 mongo 데이터베이스를 보유하고 있습니다. 다음은 데이터가 어떻게 보이는지 보여주는 예입니다.mongo 데이터베이스의 필드 이름 (값이 아님)을 계산합니다.
{
"incident": "osint181",
"summary":"Something happened",
"actor": {
"internal": {
"motive": [
"Financial"
],
"notes": "",
"role": [
"Malicious"
],
"variety": [
"Cashier"
]
}
}
}
또 다른 문서는 다음과 같습니다
{
"incident": "osint182",
"summary":"Something happened",
"actor": {
"external": {
"motive": [
"Financial"
],
"notes": "",
"role": [
"Malicious"
],
"variety": [
"Hacker"
]
}
}
}
당신이 볼 수 있듯이
는 배우가 두 번째 문서 외부에 내부에서 변경되었습니다. 제가 할 수 있기를 원하는 것은 배우의 각 유형에 대한 사건의 수를 세는 것입니다. 내 첫 번째 시도는 다음과 같이 보았다 :db.public.aggregate({ $group : { _id : "$actor", count : { $sum : 1 }}});
그러나 그것은 나에게 전체 하위 문서를주고 카운트 많은 문서가 정확히 같은 얼마나 반영합니다. 오히려 나는 내부에 대한 카운트와 외부에 대한 카운트를 얻기를 바랬다. 우아한 방법이 있는가? 우아하지 않다면 누군가가 저에게 더러운 방법을 줄 수 있습니까?