본문 바로가기
반응형

mongodb26

[MongoDB] 내장/중첩 문서에 대한 검색(쿼리) [MongoDB] 객체 안에 객체가 있는 문서 즉, 내장/중첩 문서에 대한 쿼리(검색) * MongoDB Shell에서 진행 아래와 같은 문서 내용을 삽입해준다. db.user.insertMany([ { _id: 1, info: { role: "Magician", level: 15 }, name: "user1", skills: [ "A", "B", "C" ] }, { _id: 2, info: { role: "Warrior", level: 20 }, name: "user11", skills: [ "B" ] }, { _id: 3, info: { role: "Magician", level: 25 }, name: "user111", skills: [ "A", "B" ] }, { _id: 4, info: { ro.. 2023. 3. 9.
[MongoDB] 값 일치, 값 포함 여부로 검색 ($eq, $regex) [MongoDB] $eq, $regex를 이용한 값(문서, 배열)일치, 값 포함 여부(정규식) 검색 $eq 비교 쿼리 연산자(Comparison Query Operators) 중 하나로 지정된 값과 같은 값을 찾는다. $regex 평가 쿼리 연산자 중 하나로 값이 지정된 정규식과 일치하는 문서를 선택한다. * MongoDB Shell에서 진행 아래와 같은 문서 내용을 삽입해준다. db.user.insertMany([ { _id: 1, info: { name: "user1", role: "Magician" }, level: 15, skills: [ "A", "B", "C" ] }, { _id: 2, info: { name: "user11", role: "Warrior" }, level: 20, skills.. 2023. 3. 9.
[MongoDB] 쿼리 및 프로젝션 연산자 - 4. 배열, 비트, 투영, 기타 연산자 배열 쿼리 연산자($all, $elemMatch, $size) 배열 연산자는 배열 조건에 따라 데이터를 반환한다. 1. 배열 쿼리 연산자(Array Query Operators) 이름 설명 $all 쿼리에 지정된 모든 요소를 포함하는 배열과 일치한다. $elemMatch 배열 필드의 요소가 지정된 모든 $elemMatch 조건과 일치하는 경우 문서를 선택한다. $size 배열 필드가 지정된 크기인 경우 문서를 선택한다. 비트 단위 쿼리 연산자($bitsAllClear, $bitsAllSet, $bitsAnyClear, $bitsAnySet) 비트 연산자는 비트 위치 조건에 따라 데이터를 반환한다. 2. 비트 쿼리 연산자(Bitwise Query Operators) 이름 설명 $bitsAllClear 비트.. 2023. 3. 8.
[MongoDB] 쿼리 및 프로젝션 연산자 - 3. 지리-공간 쿼리 연산자 지리-공간 쿼리 연산자(지리-공간 쿼리 선택자, 형상 지정자) 지리-공간 쿼리 연산자(Geospatial Query Operators)는 지리 공간 표현 조건에 따라 데이터를 반환한다. 지리-공간 쿼리 선택자($geoIntersects, $geoWithin, $near, $nearSphere) 1. 지리-공간 쿼리 선택자(Query Selectors) 이름 설명 $geoIntersects GeoJSON 도형과 교차하는 도형을 선택한다. 2dsphere 인덱스는 $geoIntersects를 지원한다. $geoWithin 경계 GeoJSON 도형 내에서 도형을 선택한다. 2dsphere 및 2d 인덱스는 $geoWithin을 지원한다. $near 특정 지점에 근접한 지리 공간 개체를 반환한다. 지리공간 인덱.. 2023. 3. 8.
[MongoDB] 쿼리 및 프로젝션 연산자 - 2. 요소, 평가 연산자 1. 요소 쿼리 연산자($exists, $type) 요소 연산자는 필드 존재 또는 데이터 유형을 기반으로 데이터를 반환한다. 요소 쿼리 연산자(Element Query Operators) 종류 이름 설명 $exists 논리적 AND로 쿼리 절을 조인하여 두 절의 조건과 일치하는 모든 문서를 반환한다. $type 쿼리 식의 효과를 반전시키고 쿼리 식과 일치하지 않는 문서를 반환한다. 2. 평가 쿼리 연산자($exists, $type) 평가 연산자는 개별 필드 또는 전체 컬렉션 문서의 평가를 기반으로 데이터를 반환한다. 평가 쿼리 연산자(Evaluation Query Operators) 종류 이름 설명 $expr 쿼리 언어 내에서 집계 표현식을 사용할 수 있다. $jsonSchema 주어진 JSON 스키마에.. 2023. 3. 7.
[MongoDB] 쿼리 및 프로젝션 연산자 - 1. 비교, 논리 연산자 1. 비교 쿼리 연산자 ($eq, $in, $ne, $nin, $gt, $gte, $lt, $lte) 비교 연산자는 값 비교를 기반으로 데이터를 반환한다. 비교 쿼리 연산자(Comparison Query Operators) 종류 이름 설명 $eq 지정된 값과 같은 값을 찾는다. $in 배열에 지정된 값과 일치한다. $ne 지정된 값과 같지 않은 모든 값과 일치한다. $nin 배열에 지정된 값과 일치하지 않는다. $gt 지정된 값보다 큰 값을 찾는다. $gte 지정된 값보다 크거나 같은 값을 찾는다. $lt 지정된 값보다 작은 값을 찾는다. $lte 지정된 값보다 작거나 같은 값을 찾는다. 2. 논리적 쿼리 연산자 ($and, $not, $ne, $nor, $or) 논리 연산자는 true 또는 false로.. 2023. 3. 7.
[MongoDB] 빠른 탐색을 위한 인덱싱(indexing) NestJS(typegoose)에서 MongoDB를 빠르게 탐색하기 위해 인덱스를 사용하는 방법, explain.executionStats를 사용하여 실행속도 확인 아래와 같이 십만개(100,000)의 더미 유저 데이터가 있다. 데이터의 형식은 1. userBase.name이 userDummy0, userDummy1, userDummy2, ... , userDummy99999형식으로 되어 있다. 2. userBase.role은 Wrrior, Thief, Magician 중에 랜덤하게 생성되어 있다. 1. NestJS에서 Index 생성 이전 'userBase.role'이 'Magician'이고 'userBase.name'에 '3'이 포함된 더미 유저데이터를 찾을 때 걸리는 시간을 찾는 코드 async g.. 2023. 3. 6.
[MongoDB] Delete관련, 차이점 db.collection.(drop() vs deleteMany() vs deleteOne() vs findOneAndDelete()) Delete관련 MongoDB, db.collection.remove(): 지원중지, db.collection.deleteOne(), db.collection.deleteMany(), db.collection.findOneAndDelete() db.collection.deleteOne() 1. 필터와 일치하는 첫 번째 문서를 삭제한다. 2. 정확한 삭제를 위해 _id와 같은 고유 인덱스의 일부인 필드를 사용해야한다. 3. "deleteCount"는 1로 고정이다. 반환 값(retun 값) 예시 { "acknowledged" : true, "deletedCount" : 1.. 2023. 3. 1.
[MongoDB] Update관련, 차이점 update() vs replace() vs modify() Update관련 MongoDB: db.collection.update(): 지원중지, db.collection.updateOne(), db.collection.updateMany(), db.collection.findOneAndUpdate(), db.collection.findOneAndReplace(), db.collection.replaceOne(), db.collection.findAndModify() updateOne() vs updateMany() db.collection.updateOne(): 필터를 기반으로 컬렉션 내의 하나의 문서를 수정한다. db.collection.updateMany(): 필터를 기반으로 컬렉션 내의 여러 문서.. 2023. 2. 28.
[MongoDB] Deprecated Methods (지원중단 메소드) db.collection.count(), db.collection.insert(), db.collection.remove(), db.collection.remove(), db.collection.save(), db.collection.update() 등 사용되지 않는 방법 다음 셸 메서드는 mongosh에서 더 이상 사용되지 않는다. 대신 대체 자원 열에 나열된 방법을 사용한다. 지원중단 메소드(사용되지 않는 방법) 대신 사용하는 메소드 (대체 자원) db.collection.copyTo() Aggregation stage: $out db.collection.count() db.collection.countDocuments() db.collection.estimatedDcoumentCount() db.c.. 2023. 2. 28.
반응형