MongoDB TIL 07

Nabang Kim·2021년 9월 3일

MongoDB

목록 보기
7/10
post-thumbnail

2021년 9월 3일에 작성된 문서 7번 입니다.
MongoDB 배운 내용을 정리했습니다.



MongoDB CRUD - 비교 연산자

비교 연산자

연산자설명
$eq(Equal to)지정된 값이 같은지 확인
$ne(Not Equal to)지정된 값이 같지 않은지 확인
$gt(Greater Than)주어진 값보다 큰 지
$lt(Less Than)주어진 값보다 작은 지
$gte(Greater Than or Equal to)크거나 동일한 지
$lte(Less Than or Equal to)작거나 동일한 지
  • { field : { operator : value } }와 같은 문법으로 작성하여 사용

  • 쿼리 연산자는 데이터베이스 내에서 데이터를 찾는 다양한 방법을 제공.
  • 비교 연산자를 사용하면 특정 범위 내에서 데이터를 찾을 수 있다.
  • 비교 연산자 구문 : field : {연산자 : 값}
  • 비교 연산자를 지정하지 않으면 $eq가 기본 연산자로 사용.






MongoDB CRUD - 논리 연산자

논리 연산자

연산자설명
$and모든 쿼리 절을 충족하는 도큐먼트 반환
$or쿼리 절 중 하나라도 일치하는 도큐먼트가 있다면 해당 도큐먼트를 반환
$nor모든 절과 일치하지 않는 도큐먼트를 반환
$not$nor의 단일 버전
뒤의 조건을 만족하지 않는 모든 도큐먼트를 반환

  • $and, $or, $nor
    • 유사한 구문을 사용
    • 연산자가 작동할 절의 배열 앞에 위치
  • $not
    • 단순히 뒤에 오는 조건을 부정해 배열 구문이 필요하지 않다.



1. $and

$and가 특별한 이유 : 기본적으로 쿼리에 이미 존재하기 때문

쿼리를 실행할 때 기본적으로 $eq가 함축되어 있는 것처럼 유사한 논리가 $and에도 있습니다.
예를 들어, 두번째 쿼리는 실제로 $and문으로 읽습니다. $and는 쿼리에 대해 참이어야 하는 여러 기준이 있는 경우 기본적으로 쿼리에 이미 함축되어 있습니다.


1-1. 동일 필드에 여러 조건 적용 예시

  • 동일한 필드에 대해 쿼리하므로 $and를 제거해 단순하게 작성할 수 있다.
  • 두 조건을 하나로 결합하여 더 단순하게 작성할 수 있다.

2. $and를 명시적으로 포함해야 하는 경우의 예시

  • 쿼리에 동일한 연산자를 두 번 이상 포함해야 할 때
  1. ICN 통과하는 모든 비행기를 얻으려면 출발 공항 또는 목적 공항이 ICN
  2. 특정 비행기 유형을 얻으려면 비행기 유형이 CR2 또는 A81이여야 한다는 조건이 필요.

  • 두 조건을 모두 충족하는 비행기의 수를 얻기위해 첫 부분에 $and를 명시적으로 추가
  • 두 개의 $or 조건을 배열안에 포함.



  • 논리 연산자를 사용하면 데이터 검색을 보다 세분화 할 수 있다.
  • 논리 연산자의 구문 : { $(연산자 이름) : [<절>, ...]
    • $not : 배열이 아닌 절이 온다.
  • 논리 연산자가 지정되지 않은 경우 $and가 기본 연산자로 사용
    • 동일 연산자를 쿼리에 두 번 이상 포함해야 하는 경우, $and를 명시적으로 사용.






MongoDB CRUD - 표현 연산자

표현 연산자

연산자설명
$expr이 연산자는 다양성을 가지고 있다.
표현력이 풍부하여 하나 이상의 작업을 수행 할 수 있다.
  1. 쿼리 내 집계 표현식(Aggregation Expression)을 사용 가능
    • { $expr : { expression } } 구문 사용
  2. $expr를 이용해 변수와 조건문을 사용할 수 있다.
  3. $expr를 이용해 같은 도큐먼트 내의 필드들을 서로 비교할 수 있다.



$

  1. 연산자를 사용할 때를 나타내는 것
  2. 해당 필드의 값을 향하고 있음을 나타내는 것.
    • $를 사용하여 각각의 도큐먼트마다 달라지는 특정 필드의 값을 변수처럼 비교할 수 있다.



  • 표현 연산자로 더 복잡한 쿼리를 작성할 수 있다.
  • 도큐먼트 내의 필드를 비교할 수 있다.
  • $는 필드의 값을 참조할 때에도 사용할 수 있다.






Written with StackEdit.

0개의 댓글