3. 문서 Document
정렬된 key/value쌍의 집합
key 는 string 형
value 는 data 형 (뒤에 설명)
JavaScript로 표현한 예
{ "greeting" : "Hello, world!", "foo" : 3 }
{ "foo" : 3, "greeting" : "Hello, world!" }
1/3
4. 컬렉션 Collection
문서의 모음
MongoDB DBMS
문서 document 행 raw
컬렉션 collection 테이블 table
하나의 컬렉션 내 문서들이 모두 다른 구조를 가질
수 있다. (스키마가 없다.)
{"geeting" : "Hello}
{"foo" : " 5}
2/3
5. 하지만 특정 종류의 문서를 따로
컬렉션화 하는게 좋다.
이유 1.
1. 쿼리가 특정 종류의 문서를 반환한다.
2. 쿼리가 다른 종류의 문서를 반환한다.
코드가 다른 종류의 문서를 다룬다.
1번이 편하다.
2/3
6. 하지만 특정 종류의 문서를 따로
컬렉션화 하는게 좋다.
이유 2.
1. 각 컬렉션별로 목록을 뽑는다.
2. 한 컬렉션 내 특정 데이터형별로 쿼리해 목록을 뽑는다.
1번이 2번보다 훨씬 빠르다.
2/3
7. 1. 각 컬렉션별로 목록을 뽑는다.
2. 한 컬렉션 내 종류의 문서를 따로 컬렉
하지만 특정 특정 데이터형별로 쿼리해 목록을 뽑는다.
션화 하는게 좋다.
1번이 2번보다 훨씬 빠르다.
이유 3.
같은 종류의 데이터를 하나의 컬렉션에 모아 두는 것
은 데이터 지역성을 위해서 좋다.
데이터 지역성이 높으면 빠르다.
2/3
8. 하지만 특정 종류의 문서를 따로
컬렉션화 하는게 좋다.
이유 4.
색인을 만들게 되면 문서는 특정 구조를 가져야 한다.
이러한 색인은 컬렉션별로 정의한다.
하나의 컬렉션에 단일한 데이터형의 문서를 넣게 되면 보다 효
율적으로 색인을 생성할 수 있다.
2/3
9. 서브컬렉션
MongoDB의 데이터를 체계화 하기 위한 훌륭한
도구
다음 처럼 사용, 네임 스페이스
blog.posts
blog.authors
db.blog.posts
2/3
14. 드라이버
mongoDB에 접근 가능한 API,
다음 사이트에
http://www.mongodb.org/display/DOCS/Drivers
----
15. 데이터형
JSON/BSON
간단한 데이터 표현의 방법, 6개의 데이터형만을 지원
(null, bool, 64bit float, string, array, object)
http://www.json.org, BSON (Binary JSON) http://bsonspec.org
JSON에서는 float과 int를 식별할 수 없고, 32bit/64bit를
식별할 수 없다.
mongoDB는 JSON외의 데이타형을 추가 지원한다.
(, 심볼형객체 ID형, 날짜형, 정규표현식형, 코드형, 이진
데이터형, 최대값형, 최소값형, undefined, 내장 문서)