출력 형식 지정
이 단계에서는 MongoDB 의 집계 파이프라인을 사용하여 출력을 형식 지정하고 변환하는 다양한 기술을 살펴보겠습니다. bookstore 데이터베이스를 계속 사용하겠습니다.
MongoDB 셸을 실행하여 시작해 보겠습니다:
mongosh
bookstore 데이터베이스로 전환합니다:
use bookstore
먼저, $toUpper
및 $toLower
를 사용하여 텍스트 필드의 형식을 지정해 보겠습니다:
db.books.aggregate([
{
$project: {
_id: 0,
titleUpperCase: { $toUpper: "$title" },
authorLowerCase: { $toLower: "$author" }
}
}
]);
예시 출력:
[
{
titleUpperCase: 'MONGODB BASICS',
authorLowerCase: 'jane smith'
},
// ... other book documents
]
다음으로, $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'
},
// ... other book documents
]
배열의 형식을 지정하고 복잡한 문자열 표현을 생성할 수도 있습니다:
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'
},
// ... other book documents
]
이 마지막 예제는 $reduce
를 사용하여 배열 요소를 쉼표로 구분된 문자열로 결합합니다.