어렵다...

MongoDB 비교 연산자

  • $eq
  • $gt
  • $gte
  • $ne
  • $lt
  • $lte

$eq = Equal To

지정된 값이 서로 같거나 같이 않은지 여부를 확인 할 수 있다.
반대되는 개념으로 $ne (Not Equal to)가 있다.

$ne !== Not Equal To

$eq 와 반대되는 개념으로 지정된 값이 같지 않은 것을 찾을 때 사용

$gt > Greater Than

$lt와 반대되는 개념으로 주어진 값보다 큰 지, 작은 지를 비교할 때 사용된다.

$lt < Less Than

$gt와 반대되는 개념입니다.

$gte >= Greater Than or Equal To

크거나 동일한지, 또는 작거나 동일한지를 비교할 수 있습니다.

$lte <= Less Than or Equal To

$gte와 반대되는 개념입니다.


비교 연산자를 사용하기 위한 기본 문법

{field: {operator: value}}

ex) 실제 예시 ($lte)

{"age": {"$lte" : 70}}

나이가 70보다 어린 사람이 있는지 없는지를 살펴볼 수 있습니다.


ex) 실제 예시 ($ne)

{"subscribe": {"$ne": "subscriber"}}

not equal to subscriber 로 풀어서 얘기할 수 있습니다. subscriber가 아닌 경우 출력합니다.

비교 연산자 뒤에도 .pretty()를 사용할 수 있습니다.

.pretty()를 사용하여 보기 좋게 출력해줍니다.

{"subscribe": {"$ne": "subscriber"}}.pretty()

비교 연산자

  • 비교 연산자를 통해 다양한 방법으로 데이터를 찾을 수 있습니다.
  • 특정한 범위내의 데이터를 찾을 수 있습니다.

논리 연산자

  • $and
    주어진 모든 쿼리절과 일치하는가

  • $or
    주어진 쿼리절 하나라도 일치하는가?

  • $nor
    주어진 모든 쿼리절과 일치하지 않는가?

  • $not
    주어진 쿼리와 일치하지 않는가?

$and 연산자

참이어야 하는 여러 기준이 있는 경우 기본적으로 쿼리에 함축됩니다.

$and를 명시하지 않고 두 개의 조건을 하나로 결합하여 쿼리를 작성할 수 있습니다.

동일한 연산자를 두 번 이상 포함해야 할 때 $and 를 명시합니다.


표현 연산자

  • $expr
    쿼리 내에서 집계 표현식 (Aggregation Expression)을 사용할 수 있습니다.

{$expr: {expression}}

  • $expr을 이용해 변수와 조건문을 사용할 수 있습니다.
  • $expr을 사용하여 같은 Document 내의 필드들을 서로 비교할 수 있습니다.

Document에서 모든 station은 그와 관련된 name 필드와 id필드가 존재합니다. 이 중 id필드를 가지고 쿼리를 작성합니다.

$expr을 사용하면 해당 값이 어떤 필드와 같아야 하는지 지정하지 않고도 자체적으로 동일한 Document 내에서 start station id 값과 end station id 값을 직접 비교할 수 있습니다.


배열 연산자

  • $push
  • $all
  • $size

$push

배열의 마지막 위치에 Element를 넣습니다.
배열이 아닌 필드에 사용했을 경우, 필드의 타입을 배열로 바꿉니다.

$push 연산자를 사용하면 배열에 요소를 추가하거나 이전에 다른 유형의 값을 배열 타입의 필드로 바꿀 수 있습니다.

$all

배열 요소의 순서와 상관없이 지정된 요소가 포함된 모든 Document를 찾을 수 있습니다.

$size

배열 연산자를 이용해 배열의 길이로 결과를 제한할 수 있습니다.
배열의 길이를 제한하려면 쿼리에 $size를 추가합니다.

ex) $size: 20
20개 쿼리만을 가지고 지정한 요소가 모두 배열에 포함된 Document를 반환합니다.

특정 요소를 찾지 않는다면, $size 를 통해 배열 길이로만 쿼리할 수 있습니다.

요약

{array filed: {"$size": number}}

  • 지정된 배열 필드가 주어진 길이와 정확히 일치하는 모든 Document들이 있는 커서를 반환합니다.

{array filed: {"$all": array}}
지정된 배열 필드의 배열 순서와 관계없이 지정된 모든 요소가 포함된 모든 Document들이 있는 커서를 반환합니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글