목록MongoDB (5)
개발자는 오늘도 달립니다.
mongodb 는 쿼리 개념이 아니라 함수개념으로 스크립트 형태로 데이터를 필터링 합니다. 그래서 RDB 위주로 사용하신분들은 조금 헷갈릴 수도 있지만 그래도 꾸준히 mongodb 를 이용한다면 익숙해지리라 생각됩니다. 오늘 블로깅 할 함수는 db.getCollectionName( ) 함수인데 이 함수는 컬렉션을 조회하는 용도로 사용됩니다. 아래는 특정 문자열로 시작하거나, 종료되거나, 포함된 컬렉션을 조회하는 방법입니다. 1. "tb_" 로 시작하는 컬렉션명을 조회하는 방법 db.getCollectionNames().filter(function (c) { return c.indexOf('tb_') == 0; }) db.getCollectionNames().filter(function (c) { retu..
다수의 RDB (mysql, postgresql, oracle)에서 샤딩구성이 가능합니다. 뭐..ಠ_ಠ 관계형 데이터베이스에서 이러한 기능은 많은 분들이 익히 알고계시리라 생각됩니다. (ง •̀_•́)ง mongodb 에서도 확장 개념인 샤딩구성이 가능한데요~ 빅데이터 시대에서 확장개념은 클라우드 및 다수의 시스템에서 선택이 아닌 필수가 되었습니다. 그래서 오늘은 이 샤딩구성에 대한 개념과 방법을 블로깅 하겠습니다. 먼저 샤딩이란 무엇일까요? ・ヘ・? The word “Shard” means “a small part of a whole “. Hence Sharding means dividing a larger part into smaller parts. 샤드는 전체에서 작은 부분을 뜻하고 직역을 한다면 ..
mongoDB 인증 로그인이 가능하게끔 도커라이징 하는 방법을 포스팅 하도록 하겠습니다.! 관리자와 일반 사용자를 설정하고, 관리자는 super user 와 같습니다. 그리고 사용자는 접근도 가능하고 물론 데이터베이스에 대한 읽기, 쓰기 권한을 주도록 하겠습니다. 1. Dockerfile 생성 Dockerfile 을 생성 하고 아래의 내용을 복사해서 붙여넣어주세요~! 버전은 mongodb 4.0.2 로 하겠습니다. FROM mongo:4.2.0 COPY ./users_init.sh /docker-entrypoint-initdb.d/ 2. users_init.sh 생성 해당 파일은 도커 시작 시 호출 하게 될 스크립트 파일(javascript 코드가 포함 된 리눅스 쉘 스크립트)입니다. 기존 mongodb..
개발 프로그램에서 몽고DB를 핸들링 하기 위해서는 벤더사에서 제공하는 API를 활용해야 합니다. 이번 포스팅은 그 중 몽구스라는 API를 ECMA 5 프로미스(promise)를 사용하는 방법에 대해 알아보겠습니다. 기본적으로 몽고DB(노드용 드라이버)는 콜백으로 결과값을 반환합니다. 콜백은 간단하지만, 다들 아시다시피 중첩되었을 경우 콜백 지옥이 발생할 수 있다는 문제점이 있습니다. 따라서 콜백 대신 프로미스를 보통 많이 사용합니다. 게다가 프로미스는 자바스크립트와 노드에서 비동기 API로 밀어주고 있기 때문에 유망합니다. ES2017에서 나온 async/await도 사용할 수 있기 때문에 익숙해진다면 콜백보다 훨씬 가독성이 좋습니다. 몽고DB에 프로미스를 적용하기 위한 많은 라이브러리들이 있습니다. 몽..
Mongo DB 쿼리 연산자에 대해서 알아보겠습니다. ٩( ᐛ )و 쿼리 연산자는 다큐먼트를 조회할 때 구체적으로 찾기 위해 조건을 입력하는 것을 도와주는 기호입니다. 몇 개는 지난 시간에 미리 보셨을 겁니다. 쿼리 연산자는 모두 $로 시작합니다. 오늘은 비교 쿼리 연산자에 대해 알아보겠습니다. ⊙ 비교 쿼리 $gt 해당 값보다 더 큰 값을 가진 필드를 찾습니다. 숫자 뿐만 아니라 날짜와 ObjectId도 비교할 수 있습니다. { 필드: { $gt: 값 } } $lt 해당 값보다 작은 값을 가진 필드를 찾습니다 { 필드: { $lt: 값 } } $gte 해당 값보다 크거나 같은 값을 가진 필드를 찾습니다 { 필드: { $gte: 값 } } $lte 해당 값보다 작거나 같은 값을 가진 필드를 찾습니다 { ..