본문 바로가기

MongoDB14

[MongoDB] Ch7 - 집계 프레임워크 몽고DB는 집계 프레임워크를 사용해 분석을 실행하기 위한 강력한 지원이 제공됩니다 집계 프레임워크 집계 단계 집계 표현식 집계 누산기 7.1 파이프라인, 단계 및 조정 기능 항목 집계 프레임워크는 몽고DB 내 분석 도구 모음으로, 하나 이상의 컬렉션에 있는 도큐먼트에 대한 분석을 수행하게 해준다 집계 파이프라인은 배시와 같은 리눅스 셸 파이프라인과 매우 유사한 개념이며, 단계마다 특정 작업을 수행한다 집계 파이프라인의 개별 단계는 데이터 처리 단위다 한 번에 입력 도큐먼트 스트림을 하나씩 가져와서, 각 도큐먼트를 하나씩 처리하고, 출력 도큐먼트 스트림을 하나씩 생성한다 각 단계는 knobs 또는 tunables 셋을 제공한다 이러한 tunables은 일반적으로 필드를 수정하거나, 산술 연산을 수행하거나,.. 2022. 1. 4.
[MongoDB] Ch6 - 특수 인덱스와 컬렉션 유형 6장에서는 아래와 같은 내용을 알아보자 큐 같은 데이터를 위한 제한 컬렉션 캐시를 위한 TTL 인덱스 단순 문자열 검색을 위한 전문 인덱스 2D 구현 및 구면 기하학을 위한 공간 정보 인덱스 대용량 파일 저장을 위한 GridFS 6.1. 공간 정보 인덱스 몽고DB는 2dsphere와 2d라는 공간 정보 인덱스를 가진다 WGS84 좌표계를 기반으로 지표면을 모델링하는 구면 기하학으로 작동한다 1. 공간 정보 쿼리 유형 공간 정보 쿼리는 교차, 포함, 근접이라는 세 가지 유형이 있다 {”$geometry” : geoJsonDesc}와 같은 GeoJSON 객체로 지정한 $geoIntersects 연산자를 사용해 쿼리 위치와 교차하는 도큐먼트를 찾을 수 있다 2. 공간 정보 인덱스 사용 몽고DB의 공간 정보 인.. 2021. 12. 24.
[MongoDB] Ch5 - Indexing (인덱싱) 💡 컬렉션에 적합한 인덱스를 선택하면 성능에 큰 영향을 미친다 인덱싱의 정의와 사용하는 이유 인덱싱할 필드를 선정하는 방법 인덱스 사용을 평가하고 적용하는 방법 인덱스 생성 및 제거에 대한 관리 정보 5.1 인덱싱 소개 데이터베이스 인덱스는 책의 인덱스와 유사하다 전체 내용을 살펴보는 대신 지름길을 택해, 특정 내용을 가리키는 정렬된 리스트를 확인한다 인덱스를 사용하지 않는 쿼리를 컬렉션 스캔이라고 한다 (책의 내용을 1p부터 끝까지 전체를 읽는 방식과 같다) 💡 큰 컬렉션을 스캔할 때는 컬렉션 스캔이 매우 느려지니 이런 방식은 피하자 1. 인덱스 생성 # username 필드에 인덱스를 생성 db.indextest.createIndex({"username":1}) # 확인 db.indextest.fin.. 2021. 12. 24.
[MongoDB] Ch4 - Query (쿼리) $ 조건절을 이용해 범위 쿼리, 셋의 포함 관계, 부등 관계 쿼리 등을 수행한다. 쿼리는 필요할 때마다 도큐먼트 배치을 반환하는 데이터베이스 커서를 반환한다. 커서를 이용해 결과를 몇 개 건너뛰거나, 반환하는 결과 수를 제한하거나, 결과를 정렬하는 등 다양한 메타 연산을 수행한다 4.1 find 소개 db.users.find({"key" : "value"}) 1. 반환받을 키 지정 다큐먼트 키/값 정보가 모두 필요없을 때는 아래처럼 작성한다 (네트워크상의 데이터 전송량과 클라이언트 측에서 도큐먼트를 디코딩하는 데 시간과 메모리를 줄여준다) # username, email 값만 가져오기 (_id 키는 지정하지 않아도 항상 반환) db.users.find({}. {"username" : 1, "email" .. 2021. 12. 23.
[MongoDB] Ch3 - 도큐먼트 생성, 갱신, 삭제 💡 컬렉션에 새 도큐먼트 추가하기 컬렉션에 새 도큐먼트 삭제하기 기존 도큐먼트 갱신하기 연산을 수행할 때 안전성과 속도 중 맞는 수준 선택하기 1. 도큐먼트 삽입 db.movies.insertOne({"title" : "test"}) insertMany 여러 도큐먼트를 컬렉션에 삽입할 때 insertMany를 사용합니다 각 도큐먼트에 대해 데이터베이스로 왕복하지 않고 도큐먼트를 대량 삽입하므로 훨씬 효율적입니다 수십, 수백, 수천 개의 도큐먼트를 한 번에 전송하면 도큐먼트 삽입이 매우 빨라집니다 삽입 유효성 검사 몽고DB는 삽입된 데이터에 최소한의 검사를 수행합니다 "_id" 필드가 존재하지 않으면 새로 추가하고, 모든 도큐먼트는 16메가바이트보다 작아야 하므로 크기를 검사합니다 (톨스토이 소설 '전쟁과.. 2021. 12. 22.
[MongoDB] Ch2 - MongoDB 기본 도큐먼트 도큐먼트 표현 방식은 맵, 해시, 딕셔너리와 같이 자연스럽게 표현하는 자료구조를 가집니다 키는 중복될 수 없고, 대소문자를 구별합니다 컬렉션 컬렉션은 도큐먼트의 모음입니다 컬렉션 - 테이블 도큐먼트 - 행 동적 스키마 컬렉션은 동적 스키마를 가집니다 하나의 컬렉션 내 도큐먼트들이 모두 다른 구조를 가질 수 있습니다 { "greeting" : "Hello, world!", "views" : 3 } { "signoff" : "Good night, and good luck" } 애플리케이션 스키마는 기본적으로 필요하지는 않지만 정의하면 좋습니다 네이밍 컬렉션명에 몇 가지 제약 조건이 있습니다 빈 문자열 X \0 (null 문자) X system.으로 시작하는 이름은 시스템 컬렉션에서 사용하는 예약어라.. 2021. 12. 22.
[MongoDB] Ch1 - 몽고DB 소개 손쉬운 사용 몽고DB는 도큐먼트 지향 데이터베이스입니다 분산 확장을 쉽게할 수 있습니다 도큐먼트 지향 모델로써 복잡한 계층 관계를 하나의 레코드로 표현할 수 있습니다 고정된 스키마가 없으므로 쉽게 필드를 추가 및 제거할 수 있습니다 확장 가능한 설계 몽고DB는 분산 확장이 가능합니다 도큐먼트를 자동으로 재분배하고 사용자 요청을 올바른 장치에 라우팅하면서 클러스터 내 데이터 양과 부하를 조절합니다 다양한 기능 몽고DB는 DBMS의 대부분 기능과 더불어 다음과 같은 기능을 제공합니다 인덱싱 보조 인덱스를 지원하며 고유, 복합, 공간 정보, 전문 인덱싱 기능을 제공합니다 중첩된 도큐먼트 및 배열과 같은 계층 구조의 보조 인덱스도 지원합니다 집계 데이터 처리 파이프라인 개념을 기반으로 한 집계 프레임워크를 제공.. 2021. 12. 22.