db.getCollectionName( ) 함수를 통해서 컬렉션명을 조회할 수 있습니다. 특정 문자열로 시작하거나, 종료되거나, 포함된 컬렉션을 조회하는 방법입니다. 1. "tb_" 로 시작하는 컬렉션명을 조회하는 방법 db.getCollectionNames().filter(function (c) { return c.indexOf('tb_') == 0; }) db.getCollectionNames().filter(function (c) { return c.startWith('tb_'); }) 2. "_2018" 로 끝나는 컬렉션명을 조회하는 방법 db.getCollectionNames().filter(function (c) { return c.endsWith('_2018'); }) 3. "order" 가..
MongoDB는 생각보다 많이 파일디스크립터를 사용합니다.(커넥션풀의 소켓이나 인덱스를 생성할 때 임시파일을 많이 사용함)그래서 저는 쉘스크립트를 작성해서 파일개방수를 모니터링하고 있는데스크립트는 아래와 같이 간단합니다. ex) mongos_mon.sh-------------------------------------------------------pid=`cat /log/pid/mongos.pid`while truedols -l /proc/$pid/fd|wc -lecho '-------------------------'sleep 30done------------------------------------------------------- >컴퓨터 프로그래밍 분야에서 파일 서술자(file descript..
MongoDB 3.6 기준으로 mongoexport, mongoimport 사용시에 null 값을 갖는 필드를 csv로 저장한 후에불러올 때 null값 그대로 옮겨지지 않습니다.문자열 필드일 경우 {name:null} -> {name:""} 값으로 되어 버립니다.MongoDB에서는 null과 ""는 다르게 인식하니 혼란이 생길 수 있습니다.Json으로 export 받고 import하면 null값 그대로 옮겨 집니다.다만, Json으로 export하면 "_id"필드가 무조건 저장이 됩니다.개인적으로는 csv가 불필요한 오버헤드도 없어서 null 문제 빼고는 선호하는 편입니다.
MongoDB와 같은 NoSQL의 최대 장점이자 단점은 Schema-Free입니다. 즉 데이터를 넣을 공간을 미리정의할 필요가 없다는 것이죠.그래서 도큐먼트마다 필드의 갯수나 타입도 다양하게 저장해서 활용할 수 있습니다.스키마가 없으니 데이터를 저장할 때 편하지만, 개발자 실수로 원하지 않은 도큐먼트가추가되는 일이 흔히 발생합니다.MongoDB에서는 RDBMS의 제약조건과 비슷한 기능으로 이런 단점을 보완할 수 있습니다."collMod" 명령으로 컬렉션에 유효성을 추가할 수 있는데, "collMod"는 'dbAdmin' 역할이 필요합니다. 해당 데이터베이스 유저중 하나에 'dbAdmin' 역할(role)를 부여하고, 그 계정으로 접속한 다음에유효성을 추가하면 됩니다.예시로 member라는 컬렉션에 no라..
csv 파일을 특정 컬렉션에 import 할 때 필드의 데이터 타입이 원하지 않게 들어가는 경우가 있습니다.예를 들어 123 값을 숫자가 타입이 아니라 문자열 데이터로 넣어야 하는데 별도 지정이 없으면 숫자로 들어가는 경우가 있습니다.csv 파일에서 필드의 구분은 ","로 할 뿐 각각의 데이터가 문자열인지 숫자인지 구분이 안되기 때문에아래와 같이 두가지 방법으로 이것을 해결할 수 있습니다. 첫번째 방법csv 파일 첫번째 줄에 필드명과 데이터 타입을 아래와 같이 넣어 주면 됩니다.---------------------- a.csv ----------------------------------member_no.string(), name.string()1234,홍길동------------------------..
if~ 문과 같은 조건문을 MongoDB에서는 아래과 같이 사용하실 수 있습니다.{ $cond: { if: , then: , else: } }또는{ $cond: [ , , ] } 위 구문처럼 $cond 오퍼레이터를 사용하면 else if 를 사용할 수 없습니다.else if 처럼 다중 비교문이 필요하다면 $switch 오퍼레이터를 사용해야 합니다.{ $switch: { branches: [ { case: , then: }, { case: , then: }, ... ], default: }}$cond와 $switch는 aggregate stage에서 $group, $project 모두에서 사용할 수 있습니다.
몽고디비로 빅데이터 분석시스템을 아직까지 구축 중에 있습니다.한정적인 자원으로 수행하다 보니 생각보다 더딥니다.프로젝트 막바지에 다다르니 "설계"의 중요성이 새삼 다시 되새겨 졌습니다.NoSQL이지만 데이터모델링이 잘 되어야 쌓아둔 데이터를 쉽게 활용할 수 있고,몽고디비 버전마다 조금씩 다른 특성을 최대한 파악하고 시작해야 삽질을 최대한 피할 수 있습니다.다른 NoSQL제품에 비해 몽고디비가 완성도가 높아 그나마 비교적 프로젝트를 진행할 수 있었습니다.끝으로 몽고디비에 관심이 있으신 분은 유튜브에서 아래 영상을 보시면 많은 도움이 되니 꼭 보시길 추천 드립니다.https://youtu.be/EE8ZTQxa0AM
- Total
- Today
- Yesterday
- 오미크론
- GKRS
- VARIDESK
- 로니카 BCS
- Pixel Pals
- 루미큐브 종류
- Sybase IQ
- 남설 팔찌
- 톡토기
- Life Chair
- 배당급
- 르세라핌
- 코라나 19
- 화분벌레
- weka
- node.js
- 카카오 에드
- JMW 헤어드라이기기
- yugabyteDB
- 증권정보포털
- 파나소닉 비데 DL-EH10KWS
- 유가바이트디비
- 별잉 빛나는 밤
- 브리다 정수기
- 홈 오피스
- 별이 빚나는 밤
- 솔리드 쿨론
- 빈센트 반 고흐
- 매직 트랙패드2
- 고체 향수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |