Database/MongoDB(14)
-
DB - MongoDB와 자주 사용되는 SQL 비교
이번 포스팅 내용은 자주 사용되는 SQL문과 MongoDB와의 쿼리를 비교하는 포스팅입니다. SQL Schema Statements MongoDB Schema Statements CREATE TABLE people( id MEDIUMINT NOT NULL AUTO_INCREMENT, user_id varchar(30), age number, status char(1), PRIMARY KEY(id) ) db.people.insertOne({ user_id:"abc123", age:55, status:"A" }) 암시적으로 삽입 작업에서 _id를 생략했다면 내부적으로 _id에 값을 추가한다. 컬렉션 또한 삽입시점에 생성된다. 그러나 컬렉션을 명시적으로 생성가능하다. db.createCollection("pe..
2019.09.16 -
DB - MongoDB CRUD 사용방법 및 기타 사용방법 - 3
이번 포스팅은 몽고디비 CRUD 3번째 글입니다. 이번 내용은 문서 update부터 다루어볼 예정입니다. 혹시나 이전 포스팅을 못 보신분들은 간단히 아래 링크에서 참고 부탁드립니다. DB - MongoDB CRUD 사용방법 및 기타 사용방법 - 1 이번 포스팅은 간단하게 MongoDB 사용법에 대해 다루어봅니다. 모든 쿼리는 특정 클라이언트 드라이버를 이용하는 것이 아니라, Shell을 이용하여 직접 쿼리를 작성해보는 내용입니다. 실습 이전에 혹시나 몽고디.. coding-start.tistory.com DB - MongoDB CRUD 사용방법 및 기타 사용방법 - 2 몽고디비 CRUD 사용방법을 다루는 포스팅 2번째 글입니다. 만약 첫번째 글을 못보신 분은 아래 링크를 참조하시길 바랍니다. DB - M..
2019.09.16 -
DB - MongoDB CRUD 사용방법 및 기타 사용방법 - 2
몽고디비 CRUD 사용방법을 다루는 포스팅 2번째 글입니다. 만약 첫번째 글을 못보신 분은 아래 링크를 참조하시길 바랍니다. DB - MongoDB CRUD 사용방법 및 기타 사용방법 - 1 이번 포스팅은 간단하게 MongoDB 사용법에 대해 다루어봅니다. 모든 쿼리는 특정 클라이언트 드라이버를 이용하는 것이 아니라, Shell을 이용하여 직접 쿼리를 작성해보는 내용입니다. 실습 이전에 혹시나 몽고디.. coding-start.tistory.com 예제를 위해서 아래 문서들을 삽입합니다. 1 2 3 4 5 6 7 db.inventory.insertMany( [ { item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: ..
2019.09.16 -
DB - MongoDB CRUD 사용방법 및 기타 사용방법 - 1
이번 포스팅은 간단하게 MongoDB 사용법에 대해 다루어봅니다. 모든 쿼리는 특정 클라이언트 드라이버를 이용하는 것이 아니라, Shell을 이용하여 직접 쿼리를 작성해보는 내용입니다. 실습 이전에 혹시나 몽고디비 설치가 되어 있지 않다면 설치가 필요합니다. 필자는 Docker를 이용하여 몽고디비를 설치하였으며 방법은 아래 링크를 참조하시면 됩니다. 또한 모든 예제는 몽고디비 공식 도큐먼트를 기준으로 작성하였습니다. (번역에 익숙치 않아 가끔 잘못된 번역이 있을 수도 있습니다.) Docker - Docker로 MongoDB 설치하기. 이번 포스팅은 Docker를 이용하여 MongoDB를 설치하는 방법이다. 도커 실행 후 MongoDB 이미지를 받아준다. 이미지가 잘 받아진 것을 확인한다. 이제 내려받은 ..
2019.09.13 -
DB - MongoDB 조건으로 일부 문자열만 사용하여 인덱스이용하기
이번 포스팅할 내용은 짧은 내용이다. 아래와 같은 Document가 있다고 생각해보자. {_id:"1234",name:"yeoseong",age:"28",address:"aaa"} 위의 도큐먼트에서 인덱스된 필드가 "name"필드라고 가정하자. 위의 도큐먼트를 검색하기 위해서는 아래와 같은 쿼리를 작성할 수 있을 것이다. db.users.find({name:"yeoseong"}) 위 쿼리의 조건에는 이미 인덱스로 스키마가 등록된 필드이기 때문에 데이터를 풀스캔하는 것이 아니라 인덱스를 서칭해서 결과값을 받아올 것이다. 하지만 조건 값에 일부로만 검색을 하면서 인덱스를 스캔하기 위해서는 어떻게 해야할까? 인덱스 프리픽스(Prefix) 스캔 : 문자열 좌측 일치 검색 문자타입의 필드 인덱스가 있고 일부 문자..
2019.09.13 -
DB - MongoDB 샤딩(Sharding,분산처리 등)
샤딩(Sharding)은 데이터를 여러 서버에 분산해서 저장하고 처리할 수 있도록 하는 기술을 말한다. MongoDB의 복제와 샤딩은 상호보완적이지만 엄연히 목적이 다르다. 복제는 고가용성을 위한 솔루션이며 샤딩은 분산 처리를 위한 솔루션이다. 그래서 몽고디비는 고가용성과 대용량 분산 처리를 위해 복제와 샤딩을 모두 적용한다. 몽고디비에서 샤딩을 적용하려면 샤드 클러스터를 구축해야 하는데, 이를 위해서는 파티션된 데이터의 범위와 샤드 위치 정보 등의 메타 정보를 저장하기 위해 컨피그 서버(Config Server)가 필요하다. 그리고 응용 프로그램이 필요한 데이터를 조회하거나 저장하려면 "mongos"라는 라우터 서버(Router Server)가 필요하다. 라우터는 쿼리 수행에 있어서 프록시(Proxy)..
2019.09.12