出力の書式設定
このステップでは、MongoDB の集計パイプラインを使用して出力を書式設定および変換するさまざまな技術を探ります。書店のデータベースを引き続き使用します。
まず、MongoDB シェルを起動しましょう。
mongosh
書店のデータベースに切り替えます。
use bookstore
まず、$toUpper
と $toLower
を使用してテキストフィールドを書式設定しましょう。
db.books.aggregate([
{
$project: {
_id: 0,
titleUpperCase: { $toUpper: "$title" },
authorLowerCase: { $toLower: "$author" }
}
}
]);
出力例:
[
{
titleUpperCase: 'MONGODB BASICS',
authorLowerCase: 'jane smith'
},
//... 他の書籍ドキュメント
]
次に、$round
を使用して数値を書式設定し、書式設定された価格文字列を作成しましょう。
db.books.aggregate([
{
$project: {
_id: 0,
title: 1,
roundedPrice: { $round: ["$price", 1] },
formattedPrice: {
$concat: ["$", { $toString: { $round: ["$price", 2] } }]
}
}
}
]);
出力例:
[
{
title: 'MongoDB Basics',
roundedPrice: 30,
formattedPrice: '$29.99'
},
//... 他の書籍ドキュメント
]
配列を書式設定し、複雑な文字列表現を作成することもできます。
db.books.aggregate([
{
$project: {
_id: 0,
title: 1,
categoriesSummary: {
$reduce: {
input: "$categories",
initialValue: "",
in: {
$concat: [
"$$value",
{ $cond: [{ $eq: ["$$value", ""], "", ", "] },
"$$this"
]
}
}
}
}
}
]);
出力例:
[
{
title: 'MongoDB Basics',
categoriesSummary: 'Database, Programming'
},
//... 他の書籍ドキュメント
]
最後の例では、$reduce
を使用して配列要素をカンマ区切りの文字列に結合しています。