티스토리 뷰
find에서 사용하는 쿼리 연산자와 insert, update, delete 시 사용할 수 있는 업데이트 연산자를 한번 정리해보려고 한다.
쿼리 연산자
- $eq: 지정된 값과 동일한 값을 찾는 연산자이다.
- $gt: 지정된 값보다 큰 값을 찾는 연산자이다.
- $gte: 는 지정된 값보다 크거나 같은 값을 찾는 연산자이다.
- $lt: 지정된 값보다 작은 값을 찾는 연산자이다.
- $lte: 지정된 값보다 작거나 같은 값을 찾는 연산자이다.
- $ne: 지정된 값과 다른 값을 찾는 연산자이다.
- $in: 지정된 배열 안에 있는 값을 찾는 연산자이다.
- $nin: 지정된 배열에 없는 값을 찾는 연산자이다.
- $exists: 지정된 필드가 문서에 존재하는지 여부를 체크하는 연산자이다.
- $type: 지정된 타입과 일치하는 필드의 데이터 타입을 찾는 연산자이다.
- $all: 배열 필드가 쿼리에 지정된 배열의 모든 요소를 포함하는지 확인하는 연산자이다.
- $elemMatch: 배열 필드 내의 요소가 여러 조건을 모두 만족하는지 확인하는 연산자이다.
- $size: 배열 필드의 크기가 지정된 값과 일치하는지 확인하는 연산자이다.
- $regex: 지정된 정규 표현식과 일치하는 문자열을 찾는 연산자이다.
- $text: 텍스트 색인을 사용하여 문서에서 텍스트를 검색하는 연산자이다.
- $where: JavaScript 표현식을 사용하여 문서를 평가하는 연산자이다.
업데이트 연산자
- $set: 지정된 필드의 값을 변경하는 연산자이다. 필드가 존재하지 않으면 추가된다.
- $unset: 지정된 필드를 제거하는 연산자이다.
- $inc: 지정된 필드의 값을 지정된 수만큼 증가시키는 연산자이다. 필드가 존재하지 않으면 추가된다.
- $mul: 지정된 필드의 값을 지정된 수만큼 곱하는 연산자이다. 필드가 존재하지 않으면 0으로 설정된다.
- $rename: 지정된 필드의 이름을 변경하는 연산자이다.
- $min: 지정된 값이 현재 필드의 값보다 작을 경우에만 필드의 값을 업데이트하는 연산자이다.
- $max: 지정된 값이 현재 필드의 값보다 클 경우에만 필드의 값을 업데이트하는 연산자이다.
- $addToSet: 값이 배열에 없을 경우에만 값을 배열에 추가하는 연산자이다.
- $pop: 배열에서 첫 번째 또는 마지막 항목을 제거하는 연산자이다.
- $push: 배열에 값을 추가하는 연산자이다.
- $pull: 배열에서 지정된 값과 일치하는 모든 인스턴스를 제거하는 연산자이다.
- $pullAll: 배열에서 지정된 값의 배열과 일치하는 모든 인스턴스를 제거하는 연산자이다.
- $bit: 비트 연산을 수행하는 연산자이다.
함수
- find(): db.collection.find({name: 'John'})는 name 필드의 값이 'John'인 모든 문서를 찾는 쿼리이다.
- insert(): db.collection.insert({name: 'Jane', age: 25})는 이름이 'Jane'이고 나이가 25인 새 문서를 컬렉션에 추가하는 쿼리이다.
- update(): db.collection.update({name: 'Jane'}, {$set: {age: 26}})는 이름이 'Jane'인 문서의 age 필드를 26으로 변경하는 쿼리이다.
- remove(): db.collection.remove({name: 'Jane'})는 이름이 'Jane'인 모든 문서를 컬렉션에서 제거하는 쿼리이다.
- aggregate(): db.collection.aggregate([{$match: {status: 'A'}}, {$group: {_id: '$cust_id', total: {$sum: '$amount'}}}])는 status가 'A'인 문서들을 찾아 각 cust_id별로 총 amount를 합산하는 쿼리이다.
- count(): db.collection.count({age: {$gt: 20}})는 age 필드의 값이 20보다 큰 문서의 수를 세는 쿼리이다.
- findOne(): db.collection.findOne({name: 'John'})는 name 필드의 값이 'John'인 첫 번째 문서를 찾는 쿼리이다.
- createIndex(): db.collection.createIndex({name: 1})는 name 필드에 대한 오름차순 인덱스를 생성하는 쿼리이다.
- dropIndex(): db.collection.dropIndex({name: 1})는 name 필드에 대한 인덱스를 제거하는 쿼리이다.
- mapReduce(): 함수는 복잡해서 한 줄로 요약하기 어렵지만, mapReduce 함수는 대량의 데이터를 처리하고 집계하는데 사용되는 기능이다.
- distinct(): db.collection.distinct('category')는 모든 문서에서 고유한 category 값을 찾는 쿼리이다.
- bulkWrite(): db.collection.bulkWrite([{insertOne: {document: {name: 'John', age: 30}}}, {updateOne: {filter: {name: 'Jane'}, update: {$set: {age: 23}}}}])는 하나의 쿼리에서 여러 작업을 실행하는 예이다; 이 예에서는 하나의 문서를 삽입하고, 다른 문서를 업데이트한다.
반응형
'Database' 카테고리의 다른 글
[Oracle Tunning] 오라클 아키텍쳐 (0) | 2024.08.28 |
---|---|
[MongoDB] replica sets 설정 (0) | 2024.03.15 |
[MongoDB] Intro 및 기본 사용법 (0) | 2024.03.12 |
[MongoDB] Window11 환경에서 외부 접속 허용 (1) | 2024.03.12 |
[MySQL] Workbench Connection에 ERD 모델 변경 사항 적용 (0) | 2021.08.30 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- redux
- await
- 파니노구스토
- Promise
- react
- 맛집
- 인천 구월동 맛집
- 인천 구월동 이탈리안 맛집
- 정보보안기사 #실기 #정리
- react-native
- AsyncStorage
- Async
- 이탈리안 레스토랑
- javascript
- redux-thunk
- Total
- Today
- Yesterday