MongoDB TIL 08

Nabang Kim·2021년 9월 3일

MongoDB

목록 보기
8/10
post-thumbnail

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



MongoDB CRUD - 배열 연산자

배열 연산자

$push

  • 배열에 요소를 추가할 수 있다.
  • 이전에 다른 유형의 값이었던 경우 해당 필드를 배열 타입의 필드로 바꿀 수 있다.

$all

  • 배열 필드에 지정한 요소가 있는 모든 도큐먼트를 반환
  • $all을 사용하면 배열 요소의 순서와 상관없이 지정된 요소가 포함된 모든 도큐먼트를 찾을 수 있다.

배열 연산자

연산자설명
$size지정된 배열 필드가 길이와 일치하는 모든 도큐먼트들이 있는 커서를 반환
$all배열 순서와 관계없이 지정된 모든 요소가 포함된 모든 도큐먼트들이 있는 커서를 반환

배열 연산자를 쓰지않고 배열 필드를 쿼리하는 경우

요소설명
배열을 지정해당 배열과 정확히 일치하는 배열을 가진 도큐먼트를 찾음
문자열로 지정해당 요소가 배열에 포함된 모든 도큐먼트를 찾음






배열 연산자와 Projection

배열 연산자와 find 두 번째 인자인 Projection 이용해 쿼리하는 방법

projection

다음은 sample_airbnb 데이터베이스에서 조건에 해당하는 도큐먼트를 찾고 특정 필드만 결과에 포함하는 쿼리입니다. address와 price 필드만 결과로 가져올 수 있도록 프로젝션을 추가하였습니다.

  • find 쿼리 첫 번째 인자 : 찾으려는 도큐먼트의 조건
  • find 쿼리 두 번째 인자 : 우리가 찾고있는 필드를 구체적으로 설명하는 projection



Shell에서 쿼리 실행 예제

쿼리를 실행하고 반환된 결과

  • 쿼리와 일치하는 모든 도큐먼트에 대해 해당 priceaddress를 볼 수 있다.



projection 문법

필드 지정 값설명
1지정한 필드와 _id 필드만 가져옴
0지정한 필드를 제외한 모든 필드가 표시
  • 프로젝션에서 0과 1을 혼합 할 수 없다.
    • 혼용할 수 있는 유일한 경우 :
    • 디폴트로 포함되는 _id 필드를 제외하도록 요청할 때

      이런 요청이 없다면 _id 필드가 기본적으로 도큐먼트에 포함되기 때문입니다.


projection

  • 쿼리 조건과 일치하는 항목을 반환할 때 프로젝션을 사용해 특정한 필드만을 결과로 가져올 수 있다.
  • 1과 0을 사용하여 필드를 포함할지 여부를 지정할 수 있다.
    필드를 포함하거나 제외하는 등 혼용해서 0과 1을 사용할 수 없다.
    단 예외, 기본적으로 포함되는 _id 필드를 명시적으로 제외하는 경우

$elemMatch

  • find 쿼리 및 프로젝션 부분에서 모두 사용할 수있는 배열 연산자.
  • 지정된 쿼리와 일치하는 요소가 하나 이상있는 배열 필드를 가지고 있는 도큐먼트를 찾을 수 있다.
  • 지정된 기준과 일치하는 요소가 하나 이상있는 배열 요소만 프로젝션.






Written with StackEdit.

0개의 댓글