12
Biorąc pod uwagę bazę danych formaZagnieżdżone grupowanie z MongoDB
[
{ gender: "m", age: 1, name: "A" },
{ gender: "f", age: 2, name: "B" },
{ gender: "m", age: 3, name: "C" },
{ gender: "f", age: 1, name: "D" },
{ gender: "m", age: 2, name: "E" },
{ gender: "f", age: 3, name: "F" },
{ gender: "m", age: 1, name: "G" },
{ gender: "f", age: 2, name: "H" },
{ gender: "m", age: 3, name: "I" },
{ gender: "f", age: 1, name: "J" }
]
Chcę pierwszej grupy według wieku i drugie grupy według płci, tak aby uzyskać zagnieżdżony wynik szuka czegoś podobnego
[{
_id: "1",
children: [
{ _id: "f" },
{ _id: "m" }
]
}, {
_id: "2",
children: [
{ _id: "f" },
{ _id: "m" }
]
}, {
_id: "3",
children: [
{ _id: "f" },
{ _id: "m" }
]
}]
Tutaj to, co starałem dotąd:
db.example.aggregate(
{ $group: { _id: "$age", children: { $addToSet: {
age: "$age", gender: "$gender", name: "$name"
}}}},
{ $group: { _id: "$children.gender"}}
)
Ale to zwraca {_id: null}
jej wyniku. Czy to możliwe, a jeśli tak, to w jaki sposób?
Szukałem tego, ponieważ cały czas nie udało mi się odtworzyć, ale jeszcze jedno pytanie, jak policzyć płeć? Ile razy pojawia się płeć dla każdego wieku? – RaduM