Zählen von Gruppenmitgliedern
In diesem Schritt werden wir verschiedene Möglichkeiten zur Zählung von Elementen innerhalb von Gruppen mit dem Aggregierungsframework von MongoDB erkunden. Zählen ist eine grundlegende Operation, die Ihnen hilft, die Verteilung Ihrer Daten zu verstehen.
Lassen Sie uns mit unserer salesdb
-Datenbank fortfahren:
// Stellen Sie sicher, dass wir in der richtigen Datenbank sind
use salesdb
Zunächst fügen wir mehr Produkte hinzu, um unsere Zählung interessanter zu gestalten:
db.products.insertMany([
{ category: "Electronics", brand: "Apple" },
{ category: "Electronics", brand: "Samsung" },
{ category: "Clothing", brand: "Nike" },
{ category: "Clothing", brand: "Adidas" },
{ category: "Books", brand: "Penguin" },
{ category: "Books", brand: "Oxford" }
]);
Jetzt werden wir auf verschiedene Weise zählen:
- Zählen Sie die Anzahl der Produkte in jeder Kategorie:
db.products.aggregate([
{
$group: {
_id: "$category",
productCount: { $sum: 1 }
}
}
]);
- Zählen Sie die eindeutigen Marken innerhalb jeder Kategorie:
db.products.aggregate([
{
$group: {
_id: "$category",
uniqueBrands: { $addToSet: "$brand" }
}
}
]);
- Zählen Sie die Anzahl der eindeutigen Marken und die Gesamtzahl der Produkte:
db.products.aggregate([
{
$group: {
_id: "$category",
totalProducts: { $sum: 1 },
uniqueBrands: { $addToSet: "$brand" },
brandCount: { $addToSet: "$brand" }
}
},
{
$project: {
totalProducts: 1,
uniqueBrandCount: { $size: "$uniqueBrands" }
}
}
]);
Beispielausgabe
[
{
_id: 'Electronics',
totalProducts: 4,
uniqueBrandCount: 2
},
{
_id: 'Clothing',
totalProducts: 4,
uniqueBrandCount: 2
},
{
_id: 'Books',
totalProducts: 4,
uniqueBrandCount: 2
}
]
Erläuterung der wichtigsten Aggregierungsoperatoren:
$sum: 1
: Zählt die Gesamtzahl der Dokumente in jeder Gruppe
$addToSet
: Erstellt ein Array von eindeutigen Werten
$size
: Zählt die Anzahl der Elemente in einem Array