반응형
시간이 없어서.. 간략하게 적어봅니다.
String으로 구성된 List를 하나의 필드안에 구분자를 주어 묶어야 하는 일이 생겼습니다.
{
// DB 기준으로 테이블, 컬럼 리스트를 생성
$group: {
_id: "$dbNm",
tableList: { $addToSet: "$tableNm" },
columnList: { $addToSet: "$columnNm" }
},
// reduce & concate 을 이용하여 List를 Concate String 으로 변환
$project: {
dbNm: "$_id",
tableNm: { $reduce: {
input: "$tableList",
initialValue: "",
in: {
$concat: ["$$value", "_", "$$this"] }
}
},
columnNm: { $reduce: {
input: "$columnList",
initialValue: "",
in: { $concat: ["$$value", ",", "$$this"] }
}
}
},
// 앞 단에 위치한 구분자 제거
$project: {
// 데이터베이스명
dbNm: "$dbNm",
// 테이블명 (목록)
tableNm: { $substr: ["$tableNm", 1, -1] },
// 칼럼명 (목록)
columnNm: { $substr: ["$columnNm", 1, -1] }
}
}
특별한 문제 없이 결과가 잘 나옵니다.
반응형
'SW LAB > DataBase' 카테고리의 다른 글
InfluxDB : InfluxQL Functions 목록 (0) | 2020.04.29 |
---|---|
MongoDB : Limit, Sort 여러번 사용 (0) | 2020.04.24 |
MongoDB : Backup & Restore (0) | 2020.04.24 |
Real MongoDB : (1) 소개 (작성중) (0) | 2020.04.24 |
Oracle의 PL/SQL 에 관하여 (2) (0) | 2020.04.24 |
댓글