Sep 22, 2021 - mongoDB 객체로 구성된 배열 쿼리 방법
*9월22일
-특정한 서비스에 대한 일일 신청수/취소수/신청금액/취소금액을 데이터화 하는 테스크를 맡았다. mongoDB noSQL구조로 작성하였고, 특정한 객체 내에 date, category, data(객체로 구성된 배열)로 하나의 document가 형성되는 구조이다. 자료 예시 및 활용법은 하기와 같다.
-데이터 저장 구조
[
{
date: ISODate("2021-09-10T12:00:00+09:00"),
Category: "usedCar",
Data: [
{
name: "bmw",
theNumberOfSold: 15
},
{
name: "Honda",
theNumberOfSold: 35
},
{
name: "Toyota",
theNumberOfSold: 100
}
]
},
{
date: ISODate("2021-09-11T12:00:00+09:00"),
Category: "newCar",
Data: [
{
name: "bmw",
theNumberOfSold: 5
},
{
name: "Honda",
theNumberOfSold: 8
},
{
name: "Toyota",
theNumberOfSold: 150
}
]
}
]
-쿼리 구조
db.collection.aggregate([
{
$unwind: "$data"
},
{
$group: {
_id: {
year: {
"$year": "$date"
},
month: {
"$month": "$date"
},
day : {
"$dayOfMonth" : "$date"
},
name: "$data.name"
},
Asia: {
$sum: "$data.theNumberOfSold"
}
}
}
])