본문 바로가기

개발 Story/몽고디비9

09. Mongodb - GridFS 스터디도 종료됐고, 따로 포스팅도 하려했지만 정리 할 수록, 책 정리하면서 포스팅 하는건 별로 의미가 없는것 같아서(내용이 너무 깊어서 포스팅이 벅차다..)GridFS를 마지막으로 몽고디비포스팅은 끝내고 몽고디비를 이용한 프로그램하나 만들어보면서 사용법을 익히는게 더 좋을것 같다. 언제가 될진 모르지만 완성되면 공개....스터디 github : https://github.com/KWSStudy몽고디비 정리 wiki : https://github.com/KWSStudy/Mongodb/wiki-----------------------------------------------------목표GridFS의 개념익히기java-mongodb 드라이버를 이용한 간단한 몽고디비 연동 및 GridFS 샘플책에 나온 Gr.. 2016. 12. 16.
08. Mongodb - 쿼리와 집계 스터디 github : https://github.com/KWSStudy몽고디비 정리 wiki : https://github.com/KWSStudy/Mongodb/wiki 목표Mongodb 질의 연산자를 자세히 다뤄보자.맵-리듀스 함수를 중심으로 데이터에 대해 집계를 실행하는 방법을 살펴 보자.상품, 카테고리, 리뷰 쿼리상품 페이지를 가져오는 쿼리 예//1. slug가 whell-barrow-9092인 상품을 찾는다. db.products.findOne({'slug':'whell-barrow-9092'}) //2. 해당 상품의 카테고리 정보를 가져온다. db.categories.findOne({'_id':product['main_cat_id']}) //3. 상품 리뷰를 불러온다. db.reviews.fi.. 2016. 11. 26.
07. Mongodb - 도큐먼트 지향 데이터 이제부턴 스터디에서 정리한 자료로 대체스터디 github : https://github.com/KWSStudy몽고디비 정리 wiki : https://github.com/KWSStudy/Mongodb/wiki 4.1 스키마 설계 원리"이론에 따라 스키마를 설계해야 하지만 실제에서는 이론을 융통성 있게 적용해야 한다." (이에 따른 제기할수 있는 질답)데이터의 기본 단위는 무엇인가?RDBMS에서는 행과 열로 이루어진 테이블이 있다. 키(값) 저장 시스템에서는 키와 값을 갖는데, 여기서 값은 비구조적이다. MongDB에서는 데이터 기본적 단위가 BSON도큐먼트다.데이터를 어떻게 쿼리하고 업데이트할 것인가?RDBMS는 임의 쿼리와 조인이 특징. MongDB 또한 임의 쿼리를 허용하지만 조인은 지원하지 않는다... 2016. 11. 26.
06. Mongodb - 몽고디비 드라이버 작동 원리 1. 책에는 루비를 이용하여 트위터와 연동하는 내용인데 별로 필요하진 않은것 같고 드라이버 작동원리 부분만 알면 될 것 같아 이부분만 정리. 1-1) 드라이버의 작동 원리- 모든 몽고디비 드라이버는 3가지 중요한 기능을 수행- 모든 도큐먼트의 _id 필드에 디폴트로 저장되는 객체 ID 생성.- 특정 언어로 표현된 도큐먼트와 몽고디비의 이진데이터 포멧인 BSON 사이의 변환 수행.- 몽고디비의 와이어 프로토콜을 사용해서 네트워크 소켓을 통해 몽고디비와 통신. 1-2) 객체 ID생성- 모든 몽고디비 도큐먼트는 primary key가 필요.- 개발자가 임의값을 넣어주는 것이 가능.- 임의값이 지정되지 않을경우 객체 id값이 사용.- id값의 처음 4바이트는 유닉스 에폭 후 몇 초가 지났는지를 나타낸다.- 다음.. 2016. 11. 26.
05. Mongodb - 자바스크립트 셸을 통한 맛보기(3) 2장 요약 -3 1. 인덱스 생성과 질의 1-1) 대용량 컬렉션 생성- 인덱싱 테스트를 위해 간단히 대용량 컬렉션 생성ex)20만개 도큐먼트를 가지는 컬렉션 생성 (시간이 꽤 걸린다.)> use tutorialswitched to db tutorial> for(i=0;i db.numbers.count()200000 - 쿼리 셀렉터에 큰값과 작은값을 위한 $gt, $lt 연산자를 지원ex) 199995보다 큰값 가져오기> db.numbers.find({num:{"$gt":199995}}){ "_id" : ObjectId("582e87b124bc079e907d1b24"), "num" : 199996 }{ "_id" : ObjectId("582e87b124bc079e907d1b25"), "num" : 1999.. 2016. 11. 18.
04. Mongodb - 자바스크립트 셸을 통한 맛보기(2) 2장 요약 -2*요약2 시작전 간단히 짚고 넘어가보면 몽고디비의 셸은 자바스크립트 기반으로 만들어졌다.때문에 사용하는 명령어는 모두 자바스크립트 기반의 함수인데 웹브라우저의 개발자모드를 자주 애용해본 분들은 알겠지만자바스크립트 함수가 선언이 되어있다면, 함수명만 입력하면 해당함수가 어떤식으로 구현되어 있는지 개발자콘솔에서 볼수 있는데몽고디비의 셸역시 같은 기능을 제공한다.ex)find() 함수의 구현 확인> use tutorialswitched to db tutorial> db.users.findfunction (query, fields, limit, skip, batchSize, options) { var cursor = new DBQuery(this._mongo, this._db, this, this.. 2016. 11. 18.