Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
ANWENDBAR AUF:
MongoDB-vCore
Die $group
Aggregationsphase gruppiert Dokumente nach angegebenen Bezeichnerausdrücken und wendet Akkumulatorausdrücke an, um berechnete Felder für jede Gruppe zu erstellen. Diese Phase ist für Datenaggregations- und Zusammenfassungsvorgänge unerlässlich.
Syntax
Die Syntax für die Phase $group
lautet wie folgt:
{
$group: {
_id: <expression>,
<field1>: { <accumulator1>: <expression1> },
<field2>: { <accumulator2>: <expression2> },
...
}
}
Die Parameter
BESCHREIBUNG | |
---|---|
_id |
Erforderlich. Der Ausdruck, nach dem gruppiert werden soll. Verwenden Sie NULL, um gesammelte Werte für alle Eingabedokumente zu berechnen. |
field |
Wahlfrei. Berechnet mit Akkumulatoroperatoren wie $sum, $avg, $max, $min, $count usw. |
Beispiel
Beispiel 1: Gruppieren nach Ort und Analysieren der Personalverteilung
Die Beispielgruppen speichern nach Ort und analysieren die Personalmuster an verschiedenen Standorten.
db.stores.aggregate([
{
$group: {
_id: "$city",
totalFullTimeStaff: { $sum: "$staff.employeeCount.fullTime" },
totalPartTimeStaff: { $sum: "$staff.employeeCount.partTime" },
avgFullTimeStaff: { $avg: "$staff.employeeCount.fullTime" },
storesInCity: { $count: {} }
}
},
{
$project: {
city: "$_id",
totalFullTimeStaff: 1,
totalPartTimeStaff: 1,
avgFullTimeStaff: { $round: ["$avgFullTimeStaff", 1] },
storesInCity: 1,
fullTimeRatio: {
$round: [
{ $divide: ["$totalFullTimeStaff", { $add: ["$totalFullTimeStaff", "$totalPartTimeStaff"] }] },
2
]
}
}
},
{ $limit : 2}
])
Die Abfrage gibt die Personalanalyse nach Ort zurück.
{
"_id": "New Ellsworth",
"totalFullTimeStaff": 11,
"totalPartTimeStaff": 1,
"avgFullTimeStaff": 11,
"storesInCity": 1,
"city": "New Ellsworth",
"fullTimeRatio": 0.92
},
{
"_id": "Jalonborough",
"totalFullTimeStaff": 4,
"totalPartTimeStaff": 1,
"avgFullTimeStaff": 4,
"storesInCity": 1,
"city": "Jalonborough",
"fullTimeRatio": 0.8
}
Verwandte Inhalte
- Prüfen Sie die Optionen für die Migration von MongoDB zu Azure Cosmos DB for MongoDB (virtueller Kern).
- Erfahren Sie mehr über die Featurekompatibilität mit MongoDB