본문 바로가기
반응형

데이터베이스/MongoDB31

[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.
mongoose, typegoose, nestjs-typegoose, kindagoose 설치 명령어 mongoose, typegoose, nestjs-typegoose, kindagoose 설치 명령어 mongoose https://mongoosejs.com/ Mongoose ODM v7.0.0 Let's face it, writing MongoDB validation, casting and business logic boilerplate is a drag. That's why we wrote Mongoose. const mongoose = require('mongoose'); mongoose.connect('mongodb://127.0.0.1:27017/test'); const Cat = mongoose.model('Cat', { name: mongoosejs.com npm으로 설치 $ npm ins.. 2023. 3. 3.
[Mongoose] Query Casting Query Casting: Model.find(), Query.prototype.find(), Model.findOne(), Query.prototype.findOne() Model.find(), Query.prototype.find(), Model.findOne(), Query.prototype.findOne() 등의 첫 번째 매개변수를 filter(필터)라고 한고 이 매개변수는 쿼리 또는 조건이라고도 한다. 예시코드) const query = Character.find({ name: '홍길동' }); query.getFilter(); // `{ name: '홍길동' }` // 후속 연결 호출은 새 속성을 필터에 병합한다. query.find({ age: { $gt: 50 } }); query.getF.. 2023. 3. 2.
[Mongoose] Delete관련, 차이점 Delete관련 Mongoose: Model.remove(): 지원중지, Model.deleteOne(), Model.deleteMany(), Model.findByIdAndDelete(), Model.findOneAndDelete(), Model.findByIdAndRemove(), Model.findOneAndRemove() Model.remove(): 지원중지 2023.02.24 - [데이터베이스/MongoDB] - [Mongoose] Deprecation Warnings(remove(), update(), count()) [Mongoose] Deprecation Warnings(remove(), update(), count()) Deprecation Warnings (지원중단 경고)목록_(remo.. 2023. 3. 1.
[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.
[Mongoose] Update관련, 차이점 updateOne() vs findOneAndUpdate() vs replaceOne() vs updateOne() Update관련 Mongoose: Model.update(): 지원중지, Model.updateOne(), Model.updateMany(), Model.replaceOne(), Model.findOneAndReplace(), Model.findOneAndUpdate(), Model.findByIdAndUpdate() Model.update(): 지원중지 2023.02.24 - [데이터베이스/MongoDB] - [Mongoose] Deprecation Warnings(remove(), update(), count()) [Mongoose] Deprecation Warnings(remove().. 2023. 2. 28.
반응형