본문 바로가기
반응형

mongodb26

MongoDB Compass 사용이유 및 설치 MongoDB Compass란? MongoDB Compass는 MongoDB 데이터를 쿼리, 최적화 및 분석하기 위한 무료 대화형 도구이다. 핵심 인사이트를 얻고, 끌어서 놓기로 파이프라인을 구축하는 등의 작업을 수행할 수 있다. MongoDB에 의해 구축된 GUI인 Compass에서 데이터로 쉽게 작업할 수 있다. Compass는 스키마 분석에서 인덱스 최적화, 집계 파이프라인에 이르기까지 모든 것을 중앙 집중식 단일 인터페이스에서 제공한다. - Compass는 무료로 다운로드하여 사용할 수 있다. - Linux, Mac 및 Windows에서 사용 가능하다. https://www.mongodb.com/products/compass MongoDB Compass Explore and interact wit.. 2023. 7. 14.
[MongoDB] 몽고DB Dump & Restore (Backup) Dump 서비스할 웹사이트의 데이터베이스는 DBNAME이며 접근을 위한 uri와 password를 설정파일(.yaml)로 미리 작성한다.uri에는 엔드포인드와 username, db명이 포함된다. (mongoDB uri string Path) password의 경우 !로 끝날경우 uri에 포함될 시 파싱에러가 발생하여 별도로 분리해야한다. uri: uri: "mongoDB주소(mongodb://id:pathword@ ~ / db명 ? replicaSet = ..)" password: "mongoDB비밀번호" 웹사이트의 db로부터 백업을 받을 때 다음의 명령어를 이용한다. mongodump --config="YAML파일 이름".yaml --forceTableScan Restore 설정파일 ("YAML파일 .. 2023. 4. 4.
[MongoDB, NestJS] DB 트랜잭션을 이용한 자원소비 코드 [NestJS, MongoDB] DB 자원(임계구역)에 동시접근할 때, 트랜잭션을 이용해 자원소비 제어 코드 Why? 1. DB자원이 0이하로 내려가지 않게 백엔드에서 구현한다. (자원이 0이하면 소비할 수 없고 Error처리) 2. 하지만 트랜잭션을 걸어주지 않는다면 DB 임계구역에 있는 자원에 동시에 접근하여 소비하여 자원이 동시에 -2가 되어 자원이 -1이 되는 경우가 있다. 이를 해결하기 위해 트랜잭션을 걸어주는 코드이다. (동시에 접근하는 것을 방지한다) async spendResource() { const session = await this.model.db.startSession(); session.startTransaction(); try{ // 자원이 없으면 예외처리 추가 부분 (roll.. 2023. 3. 26.
[MongoDB] 인덱스 교차 (Index Interserction) [MongoDB] 인덱스 교차 (인덱스 접두사 교차, 인덱스 교차 및 정렬, 인덱스 교차 및 복합 인덱스) 인덱스 교차(Intersection)란? 인덱스 교차는 MongoDB 2.6부터 제공한다. 이 용어는 인덱스의 종류가 아니라 인덱스의 작동 방식을 지칭한다. 지금까지 알아본 ‘단일 인덱스’와 ‘컴파운드 인덱스’를 하나의 컬렉션 내에서 별개로 지정하더라도 쿼리가 구동 될 때에는 내부에서 교집합처럼 동작하여 성능을 높힌다. 다음과 같이 단일 인덱스 두 가지를 선언해준다. db.collection.createIndex({ qty: 1 }) db.collection.createIndex({ item: 1 }) 단일 인덱스가 별개로 두 개를 정의했다. db.orders.find({ item: 'abc123'.. 2023. 3. 20.
[MongoDB] 접두사 인덱스, 등치 (Index Prefix, Equality)란? [MongoDB] 접두사 인덱스, 동치 상태 (Index Prefix, Equality State)란? 인덱스 Prefix란? MongoDB의 인덱스 관련 메뉴얼을 읽다 보면 자주 나오는 용어 중에 Index Prefix라는 말이 있다. 접두사 인덱스 / 선행 인덱스 / 앞쪽 인덱스 해석하면 약간 어색해진다. 일단 아래 예제 코드로 살펴보자. db.collection.createIndex({ a: 1, b: 1, c: 1 }) { a: 1 } { a: 1, b: 1 } { a: 1, b: 1, c: 1 } 정의 된 인덱스의 앞 쪽부터 포함하는 부분집합의 인덱스들을 인덱스 Prefix라고 말한다. 컴파운드 인덱스는 첫 번째 인덱스는 단일 인덱스처럼 일렬로 나열되어 있다. 두 번째 인덱스는 동일한 첫 번째 .. 2023. 3. 20.
[MongoDB] 인덱스 검색, 인덱스 정렬 방식에 따른 검색속도 차이 [MongoDB] 인덱스 검색, 인덱스 정렬 방식에 따른 검색 및 정렬 빠르게 하는 방법 각 명령어의 출력시간은 explain.executionStats를 사용하여 실행속도를 확인하였다. 2023.03.06 - [데이터베이스/MongoDB] - [MongoDB] 빠른 탐색을 위한 인덱싱(indexing) [MongoDB] 빠른 탐색을 위한 인덱싱(indexing) NestJS(typegoose)에서 MongoDB를 빠르게 탐색하기 위해 인덱스를 사용하는 방법, explain.executionStats를 사용하여 실행속도 확인 아래와 같이 십만개(100,000)의 더미 유저 데이터가 있다. 데이터의 형식은 1 kfdd6630.tistory.com 1. 인덱스 순서와 검색에 있어서 검색은 정렬에 비해 인덱스.. 2023. 3. 20.
[MongoDB] Single Field Indexes, Compound Index (단일 인덱스, 복합 인덱스) [MongoDB] Single Field Indexes(단일 인덱스), Compound Index(복합 인덱스) Single Field Indexes (단일 인덱스) 쿼리에서 단 하나의 key만을 이용한다면 단일 키 인덱스를 사용해야 한다. db.records.createIndex( { score: 1 } ) records 필드를 키로 인덱스를 만든다. 여기서 1은 오름차순, -1은 내림차순을 의미한다. score생성된 인덱스는 다음과 같이 필드에서 선택하는 쿼리를 지원한다 . db.records.find( { score: 2 } ) db.records.find( { score: { $gt: 10 } } ) 생성한 인덱스를 확인하기 위해서 아래와 같이 조회 할 수 있다. db.records.getInde.. 2023. 3. 14.
[MongoDB] 인덱스(index)란? 인덱스 설계 시 고려할 점 [MongoDB] 인덱스(index)란? 인덱스 설계 시 고려할 점 인덱스(index)란? 1. index는 우리 말로 색인이라 한다. 2. 데이터베이스의 인덱스는 원하는 정보를 빨리 찾을 수 있도록 돕는 색인의 역할을 한다. 3. 영어사전에서 a, b, c ... 알파벳 순서대로 정렬이 되어있듯이 인덱스도 순서가 있는 무언가로 정렬되어 있다. 4. 작은 숫자에서 큰 숫자 혹은 반대 즉, 정방향이든 역방향이든 무언가로 정렬이 되어있다. index가 왜 필요할까? 1. 정렬기준, 정렬조건을 알고 있다면 전화번호부, 책, 사전등에서 내가 원하는 정보가 어디쯤 있을지 예상이 가능하다. 2. 인덱스가 없이 정렬되지 않고 작성되어있는 책, 사전이라면 찾는 정보가 어디쯤 있을 지 예상하지 못한채 하나하나 찾아야 한.. 2023. 3. 13.
[MongoDB] $elemMatch (query) [MongoDB] 몽고 DB에서 배열 요소에 대한 쿼리, $elemMatch (query) $elemMatch 연산자는 지정된 모든 쿼리 기준과 일치하는 요소가 하나 이상 있는 배열 필드가 포함된 문서와 일치한다.{ : { $elemMatch: { , , ... } } } - 단일 조건만 지정하는 경우 $elemMatch 표현식 내부에 $not 또는 $ne 연산자를 사용하지 않는다. - $elemMatch , $elemMatch 생략할 수 있다. - $elemMatch안에서 $where 식을 지정할 수 없다. - $elemMatch안에서 $text 쿼리 식을 지정할 수 없다.  요소 일치* MongoDB Shell에서 진행아래와 같은 문서 내용을 삽입해준다.db.scores.insertMany([ { .. 2023. 3. 10.
[MongoDB] 배열의 여러가지 Query 종류 배열의 여러가지 Query 종류 ( 배열과 일치, 요소에 대한 쿼리, 배열 요소에 대한 복합 필터 조건으로 쿼리, 여러 기준을 충족하는 배열 요소에 대한 쿼리, 인덱스 위치로 요소 쿼리, 배열 길이로 쿼리 ) * MongoDB Shell에서 진행 아래와 같은 문서 내용을 삽입해준다. db.inventory.insertMany([ { _id: 1, item: "A", price: 25, colors: ["blank", "red"], diff: [ 14, 21 ] }, { _id: 2, item: "B", price: 50, colors: ["red", "blank"], diff: [ 14, 21 ] }, { _id: 3, item: "C", price: 100, colors: ["red", "blank",.. 2023. 3. 10.
반응형