본문 바로가기
반응형

mongodb15

MongoDB : String-List to Concat-String 시간이 없어서.. 간략하게 적어봅니다. 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"] } } }, .. 2020. 4. 24.
MongoDB : Limit, Sort 여러번 사용 특정 데이터를 검색하기 위해 limit 와 sort를 여러번 사용해야할 때가 있습니다. 기본적인 Mongo API를 이용해서 시도해보았습니다. 기록된 데이터중 최근 1000건의 데이터 중 가장 마지막 일자의 데이터를 찾는 것이 목표입니다. Criteria criteria = new Criteria(); Query query = new Query(); criteria.and("creDatm").gt(startDate); query.addCriteria(criteria); query.with(Sort.by(Direction.ASC, "creDatm")); query.limit(1000); query.with(Sort.by(Direction.DESC, "creDatm")); query.limit(1); Sql.. 2020. 4. 24.
MongoDB : Backup & Restore 업무 중 MongoDB의 Database를 복제해야 하는 일이 생겼습니다. 그래서 다음과 절차를 갖고 진행했습니다. MongoDB 에서는 databaseCopy 라는 명령어를 제공해줍니다. 복제해야 할 Database 로 접속합니다. use DB명 그리고 다음 명령어로 복제를 수행합니다. db.copyDatabase('원본DB명' , '복제DB명') 그러나, Sharding 으로 구성하였을 경우 위 명령어로는 복제를 할 수 없습니다. 따라서 mongodump 와 mongorestore를 이용해야 합니다. 우선, dump 파일을 생성하겠습니다. mongodump 실행 포맷 mongodump --out /파일경로/파일명 --port 포트번호 -u관리자계정 -p관리자암호 --db .. 2020. 4. 24.
MongoDB : Too Many Open File 현상 현재 프로젝트에서 두 대의 서버로 MongoDB의 ReplicaSet를 구성하였습니다. 그런데, 운영 중 서버B에서 동작중인 RS1 Secondary가 죽기도 하고 .. 서버A에서 동작중인 RS1 Primary가 죽기도 하는 현상이 간헐적으로 발생하였습니다. MongoDB 로그를 분석 중, 여러 에러 코드가 있었지만 Too many file opens와 함께 Prefix로 [Error] 를 발견하였습니다. 우선 1차적인 조치로 이 것을 해결하기 위해 살펴보던 중 Linux에서 허용하는 open files가 4096으로 되어 있는 것을 보았습니다. 우선 이 값을 최대치로 높여주기 위핸 조치를 취했습니다. ulimit -a 로 현재 시스템에서의 수치 확인 ... open files 4096 max user .. 2020. 4. 24.
Mongodb : Linux 설치 가이드 tar 다운로드 https://www.mongodb.com/download-center#atlas 위 주소로 접속하여, 최신버전 다운로드 linux 서버로 파일 복사 압축 풀기 tar xzf mongodb-linux-x86_64-rhel70-3.4.2.gz 데이터 저장용 폴더 생성 mkdir -p /data/db 서버 시작 /[압축푼 경로]/mongodb-linux-x86_64-rhel70-3.4.2/bin/mongod --port 27017 --dbpath /data/db 인증을 주고자 할 경우는 /[압축푼 경로]/mongodb-linux-x86_64-rhel70-3.4.2/bin/mongod --port 27017 --dbpath /data/db -- auth 백그라운드로 실행할 경우는 /[압축푼 경.. 2020. 4. 23.
OpenSource MongoDB : (4) Aggregation Pipeline Optimization 명령어 (연산자) 실행 입출력 형태 $project reshape (1:1) 키를 지우거나 추가하기 $match filler (n:1) 필터링하기 $group aggregate (n:1) 합계 연산 $sort sort (1:1) 분류하기 $skip skips (n:1) 건너뛰기 $limit limits (n:1) 제한하기 $unwind normalize (1:n) tags:["red","blue","green"] -> tags:red, tags:green, tags:blue $out output (1:1) 출력하기 1. Pipeline Sequence Optimization 1) $project or $addFields + $match Sequence Optimization Before Optimizat.. 2020. 4. 23.
반응형