DataBase/MongoDB

DataBase/MongoDB

[Mongodb] explain을 활용한 mongodb 쿼리 최적화

MongoDB, 대용량 데이터를 처리하고 저장하는 데 있어서 매우 효과적인 NoSQL 데이터베이스라는 사실은 이미 잘 알려져 있다. 하지만 대량의 데이터를 다루다 보면 쿼리의 효율성은 중요한 이슈가 된다. 그래서 MongoDB는 사용자들이 쿼리 성능을 향상시킬 수 있도록 explain() 메소드를 제공한다. 나의 경우 쿼리가 인덱스를 타는지 여부를 확인하기 위해 사용했다. explain() 메소드는 MongoDB 쿼리가 어떻게 동작하며 어떻게 최적화될 수 있는지에 대한 정보를 제공한다. 이 메소드의 사용법은 간단하다. 작성한 쿼리에 .explain()을 추가하면 된다. db.getCollection("test").find({test: "Test"}).explain() MongoDB는 .explain()에..

DataBase/MongoDB

[MongoDB] MongoDB 검색 성능 극대화 방법: 인덱스와 컴파운드 인덱스의 활용

이번 글에서는 MongoDB에서 데이터 검색 성능을 최대한 높이기 위한 방법을 소개한다. 이 방법의 핵심은 '인덱스'와 '컴파운드 인덱스'라는 두 개념을 이해하고 활용하는 것이다. 1. 인덱스 인덱스는 MongoDB에서 데이터를 효율적으로 찾기 위한 데이터 구조다. 인덱스가 없을 경우, MongoDB는 쿼리에 맞는 문서를 찾기 위해 컬렉션의 모든 문서를 검색해야 한다. 하지만 인덱스가 있을 경우, MongoDB는 인덱스를 활용하여 필요한 문서를 더 빠르게 찾을 수 있다. 예를 들어, MongoDB에서 'username'이라는 필드에 인덱스를 추가하는 방법은 다음과 같다. db.users.createIndex({ username: 1 }); 2. 컴파운드 인덱스 컴파운드 인덱스는 두 개 이상의 필드를 결합..

DataBase/MongoDB

[MongoDB] mongodb에서 필드의 이름을 변경하는 방법

mongodb에서 필드의 이름을 변경하는 방법에 대해 서술한다. 예시 컬렉션: testCollection 필드 정의 { "_id" : ObjectId("1"), "testField1": 1, "testField2": 2, "testField3": 3, "testField4": 4, "testField5": 5, "testField6": 6, } 위의 예시에서 testField1의 이름을 uuid라고 바꾸고 싶을때 사용하면 된다. 아래의 명령어를 사용하면 변경이 가능하다. db.getCollection("컬렉션이름").updateMany({}, {$rename: {'변경하기 위한 필드명': '변경하고 싶은 필드명'}}) ex) db.getCollection("testCollection").updateMan..

DataBase/MongoDB

[Mongoose] mongoose를 사용한 mongodb 필드를 삭제하는 방법

mongoose를 사용해서 마이그레이션 스크립트를 작성하던중 더이상 사용하지 않는 필드를 완전히 DB에서 삭제해야 하는 상황이 생겼다. 해당 필드를 DB에서 제거해보자. Version node.js: 16.15.1 mongoose: 6.6.2 mongoDB: 5.x Field 삭제 예를 들어 기존에 존재하던 스키마는 아래와 같은 형식이였다. const testSchema = new Schema({ test1: { type: String, required: true }, test2: { type: String, required: true }, test3: { type: String, required: true }, test4: { type: String, required: true }, test5: { t..

얼은펭귄
'DataBase/MongoDB' 카테고리의 글 목록