$group - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$group

Tahap $group agregasi di Amazon DocumentDB memungkinkan Anda mengelompokkan dokumen dengan ekspresi tertentu dan melakukan berbagai operasi akumulatif pada data yang dikelompokkan. Ini dapat berguna untuk tugas-tugas seperti menghitung total, rata-rata, atau statistik lain berdasarkan data yang dikelompokkan.

Parameter

  • _id: Menentukan ekspresi dimana dokumen masukan harus dikelompokkan. Ini bisa berupa nama bidang, ekspresi yang dihitung, atau kombinasi keduanya.

  • accumulator expressions: (opsional) Satu atau lebih ekspresi akumulator yang harus diterapkan pada data yang dikelompokkan. Ekspresi ini menggunakan operator akumulator yang disebutkan di atas.

Contoh (MongoDB Shell)

Contoh berikut mengelompokkan pelanggan berdasarkan kota mereka dan menghitung jumlah total pesanan untuk setiap kota.

Buat dokumen sampel

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 }] } ]);

Contoh kueri

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

Keluaran

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

Contoh kode

Untuk melihat contoh kode untuk menggunakan $group perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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()