$group - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$group

Die $group Aggregationsphase in Amazon DocumentDB ermöglicht es Ihnen, Dokumente nach einem bestimmten Ausdruck zu gruppieren und verschiedene kumulative Operationen mit den gruppierten Daten durchzuführen. Dies kann für Aufgaben wie die Berechnung von Gesamtwerten, Durchschnittswerten oder anderen Statistiken auf der Grundlage der gruppierten Daten nützlich sein.

Parameter

  • _id: Gibt den Ausdruck an, nach dem die Eingabedokumente gruppiert werden sollen. Dies kann ein Feldname, ein berechneter Ausdruck oder eine Kombination aus beidem sein.

  • accumulator expressions: (optional) Ein oder mehrere Akkumulatorausdrücke, die auf die gruppierten Daten angewendet werden sollen. Diese Ausdrücke verwenden die oben genannten Akkumulatoroperatoren.

Beispiel (MongoDB Shell)

Im folgenden Beispiel werden Kunden nach ihrer Stadt gruppiert und der Gesamtbestellbetrag für jede Stadt berechnet.

Erstellen Sie Beispieldokumente

db.customers.insertMany([ { name: "John Doe", city: "New York", orders: [{ amount: 100 }, { amount: 200 }] }, { name: "Jane Smith", city: "Los Angeles", orders: [{ amount: 150 }, { amount: 300 }] }, { name: "Bob Johnson", city: "New York", orders: [{ amount: 75 }, { amount: 125 }] }, { name: "Samantha Lee", city: "Chicago", orders: [{ amount: 50 }, { amount: 100 }] } ]);

Beispiel für eine Abfrage

db.customers.aggregate([ { $group: { _id: "$city", totalOrders: { $sum: { $sum: "$orders.amount" } } } } ]);

Ausgabe

[ { _id: 'Chicago', totalOrders: 150 }, { _id: 'Los Angeles', totalOrders: 450 }, { _id: 'New York', totalOrders: 500 } ]

Codebeispiele

Um ein Codebeispiel für die Verwendung des $group Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function groupByCity() { const uri = 'mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'; const client = new MongoClient(uri); try { await client.connect(); const db = client.db('test'); const result = await db.collection('customers').aggregate([ { $unwind: '$orders' }, { $group: { _id: '$city', totalOrders: { $sum: '$orders.amount' } } } ]).toArray(); console.log(result); } catch (err) { console.error('Error during aggregation:', err); } finally { await client.close(); } } groupByCity();
Python
from pymongo import MongoClient def group_by_city(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') try: db = client.test result = list(db.customers.aggregate([ {'$unwind': '$orders'}, { '$group': { '_id': '$city', 'totalOrders': {'$sum': '$orders.amount'} } } ])) print(result) except Exception as e: print(f"Error during aggregation: {e}") finally: client.close() group_by_city()