티스토리 뷰

Database

[MongoDB] 연산자 및 함수

춘햄 2024. 3. 12. 12:00

 find에서 사용하는 쿼리 연산자와 insert, update, delete 시 사용할 수 있는 업데이트 연산자를 한번 정리해보려고 한다.


쿼리 연산자

  1. $eq: 지정된 값과 동일한 값을 찾는 연산자이다.
  2. $gt: 지정된 값보다 큰 값을 찾는 연산자이다.
  3. $gte: 는 지정된 값보다 크거나 같은 값을 찾는 연산자이다.
  4. $lt: 지정된 값보다 작은 값을 찾는 연산자이다.
  5. $lte: 지정된 값보다 작거나 같은 값을 찾는 연산자이다.
  6. $ne: 지정된 값과 다른 값을 찾는 연산자이다.
  7. $in: 지정된 배열 안에 있는 값을 찾는 연산자이다.
  8. $nin: 지정된 배열에 없는 값을 찾는 연산자이다.
  9. $exists: 지정된 필드가 문서에 존재하는지 여부를 체크하는 연산자이다.
  10. $type: 지정된 타입과 일치하는 필드의 데이터 타입을 찾는 연산자이다.
  11. $all: 배열 필드가 쿼리에 지정된 배열의 모든 요소를 포함하는지 확인하는 연산자이다.
  12. $elemMatch: 배열 필드 내의 요소가 여러 조건을 모두 만족하는지 확인하는 연산자이다.
  13. $size: 배열 필드의 크기가 지정된 값과 일치하는지 확인하는 연산자이다.
  14. $regex: 지정된 정규 표현식과 일치하는 문자열을 찾는 연산자이다.
  15. $text: 텍스트 색인을 사용하여 문서에서 텍스트를 검색하는 연산자이다.
  16. $where: JavaScript 표현식을 사용하여 문서를 평가하는 연산자이다.
  17.  

업데이트 연산자

  1. $set: 지정된 필드의 값을 변경하는 연산자이다. 필드가 존재하지 않으면 추가된다.
  2. $unset: 지정된 필드를 제거하는 연산자이다.
  3. $inc: 지정된 필드의 값을 지정된 수만큼 증가시키는 연산자이다. 필드가 존재하지 않으면 추가된다.
  4. $mul: 지정된 필드의 값을 지정된 수만큼 곱하는 연산자이다. 필드가 존재하지 않으면 0으로 설정된다.
  5. $rename: 지정된 필드의 이름을 변경하는 연산자이다.
  6. $min: 지정된 값이 현재 필드의 값보다 작을 경우에만 필드의 값을 업데이트하는 연산자이다.
  7. $max: 지정된 값이 현재 필드의 값보다 클 경우에만 필드의 값을 업데이트하는 연산자이다.
  8. $addToSet: 값이 배열에 없을 경우에만 값을 배열에 추가하는 연산자이다.
  9. $pop: 배열에서 첫 번째 또는 마지막 항목을 제거하는 연산자이다.
  10. $push: 배열에 값을 추가하는 연산자이다.
  11. $pull: 배열에서 지정된 값과 일치하는 모든 인스턴스를 제거하는 연산자이다.
  12. $pullAll: 배열에서 지정된 값의 배열과 일치하는 모든 인스턴스를 제거하는 연산자이다.
  13. $bit: 비트 연산을 수행하는 연산자이다.
 

함수

  1. find(): db.collection.find({name: 'John'})는 name 필드의 값이 'John'인 모든 문서를 찾는 쿼리이다.
  2. insert(): db.collection.insert({name: 'Jane', age: 25})는 이름이 'Jane'이고 나이가 25인 새 문서를 컬렉션에 추가하는 쿼리이다.
  3. update(): db.collection.update({name: 'Jane'}, {$set: {age: 26}})는 이름이 'Jane'인 문서의 age 필드를 26으로 변경하는 쿼리이다.
  4. remove(): db.collection.remove({name: 'Jane'})는 이름이 'Jane'인 모든 문서를 컬렉션에서 제거하는 쿼리이다.
  5. aggregate(): db.collection.aggregate([{$match: {status: 'A'}}, {$group: {_id: '$cust_id', total: {$sum: '$amount'}}}])는 status가 'A'인 문서들을 찾아 각 cust_id별로 총 amount를 합산하는 쿼리이다.
  6. count(): db.collection.count({age: {$gt: 20}})는 age 필드의 값이 20보다 큰 문서의 수를 세는 쿼리이다.
  7. findOne(): db.collection.findOne({name: 'John'})는 name 필드의 값이 'John'인 첫 번째 문서를 찾는 쿼리이다.
  8. createIndex(): db.collection.createIndex({name: 1})는 name 필드에 대한 오름차순 인덱스를 생성하는 쿼리이다.
  9. dropIndex(): db.collection.dropIndex({name: 1})는 name 필드에 대한 인덱스를 제거하는 쿼리이다.
  10. mapReduce(): 함수는 복잡해서 한 줄로 요약하기 어렵지만, mapReduce 함수는 대량의 데이터를 처리하고 집계하는데 사용되는 기능이다.
  11. distinct(): db.collection.distinct('category')는 모든 문서에서 고유한 category 값을 찾는 쿼리이다.
  12. bulkWrite(): db.collection.bulkWrite([{insertOne: {document: {name: 'John', age: 30}}}, {updateOne: {filter: {name: 'Jane'}, update: {$set: {age: 23}}}}])는 하나의 쿼리에서 여러 작업을 실행하는 예이다; 이 예에서는 하나의 문서를 삽입하고, 다른 문서를 업데이트한다.
 

 

Comments