In diesem Schritt werden wir verschiedene Techniken zur Formatierung und Transformation der Ausgabe mithilfe der Aggregationspipeline von MongoDB untersuchen. Wir werden weiterhin mit unserer bookstore
-Datenbank arbeiten.
Lassen Sie uns beginnen, indem wir die MongoDB-Shell starten:
mongosh
Wechseln Sie zur bookstore
-Datenbank:
use bookstore
Zunächst verwenden wir $toUpper
und $toLower
, um Textfelder zu formatieren:
db.books.aggregate([
{
$project: {
_id: 0,
titleUpperCase: { $toUpper: "$title" },
authorLowerCase: { $toLower: "$author" }
}
}
]);
Beispielausgabe:
[
{
titleUpperCase: 'MONGODB BASICS',
authorLowerCase: 'jane smith'
},
//... andere Buchdokumente
]
Als Nächstes formatieren wir numerische Werte mit $round
und erstellen formatierte Preiszeichenketten:
db.books.aggregate([
{
$project: {
_id: 0,
title: 1,
roundedPrice: { $round: ["$price", 1] },
formattedPrice: {
$concat: ["$", { $toString: { $round: ["$price", 2] } }]
}
}
}
]);
Beispielausgabe:
[
{
title: 'MongoDB Basics',
roundedPrice: 30,
formattedPrice: '$29.99'
},
//... andere Buchdokumente
]
Wir können auch Arrays formatieren und komplexe Zeichenkettenrepräsentationen erstellen:
db.books.aggregate([
{
$project: {
_id: 0,
title: 1,
categoriesSummary: {
$reduce: {
input: "$categories",
initialValue: "",
in: {
$concat: [
"$$value",
{ $cond: [{ $eq: ["$$value", ""] }, "", ", "] },
"$$this"
]
}
}
}
}
}
]);
Beispielausgabe:
[
{
title: 'MongoDB Basics',
categoriesSummary: 'Database, Programming'
},
//... andere Buchdokumente
]
Dieses letzte Beispiel verwendet $reduce
, um Array-Elemente zu einer durch Kommas getrennten Zeichenkette zusammenzufügen.