문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

db.createView()

이 페이지의 내용

  • 구문
  • 예제
  • 행동
db.createView()

참고

명확화

이 페이지에서는 표준 뷰에 대해 설명합니다. 온디맨드 구체화된 뷰에 대한 설명은 온디맨드 구체화된 뷰를 참조하세요.

뷰 유형 간의 차이점을 이해하려면 온디맨드 구체화된 뷰와의 비교를 참조하세요.

지정된 aggregation pipeline을 소스 collection 또는 뷰에 적용한 결과로 를 생성합니다. 뷰는 읽기 전용 collection 역할을 하며 읽기 작업 중에 온디맨드로 계산됩니다. 소스 collection과 동일한 데이터베이스에 뷰를 생성해야 합니다. MongoDB는 aggregation pipeline의 일부로 뷰에 대한 읽기 작업을 실행합니다.

보기 정의 pipeline에는 $out 또는 $merge 단계를 포함할 수 없습니다. 이 제한은 $lookup 단계 또는 $facet 단계에서 사용되는 파이프라인과 같은 임베디드 파이프라인에도 적용됩니다.

db.createView 의 구문은 다음과 같습니다:

db.createView(<view>, <source>, <pipeline>, <collation>)

이 메서드에는 다음과 같은 매개 변수가 있습니다.

매개변수
유형
설명
view
문자열
만들려는 뷰의 이름입니다.
source
문자열
뷰를 생성할 소스 collection 또는 뷰의 이름입니다. 이름에는 데이터베이스 이름이 포함되지 않으며 생성할 뷰와 동일한 데이터베이스를 의미합니다. collection 또는 뷰의 전체 네임스페이스가 아닙니다. 소스 collection과 동일한 데이터베이스에 뷰를 생성해야 합니다.
pipeline
배열

집계 파이프라인 단계 로 구성된 배열입니다. db.createView() 는 지정된 pipelinesource 컬렉션 또는 뷰에 적용하여 뷰를 만듭니다.

보기 정의 pipeline에는 $out 또는 $merge 단계를 포함할 수 없습니다. 이 제한은 $lookup 단계 또는 $facet 단계에서 사용되는 파이프라인과 같은 임베디드 파이프라인에도 적용됩니다.

뷰 정의는 공개입니다. 즉, 뷰에 대한 db.getCollectionInfos()explain 작업에는 뷰를 정의하는 파이프라인이 포함됩니다. 따라서 뷰 정의에 민감한 필드와 값을 직접 참조하지 않는 것이 좋습니다.

collation
문서

선택 사항입니다. 뷰의 기본 데이터 정렬을 지정합니다.

데이터 정렬을 사용하면 대소문자 및 악센트 표시 규칙과 같은 문자열 비교에 대한 언어별 규칙을 지정할 수 있습니다.

기본 source가 컬렉션인 경우 뷰는 컬렉션의 데이터 정렬 설정을 상속하지 않습니다.

데이터 정렬이 지정되지 않은 경우, 뷰의 기본 데이터 정렬은 'simple' 이진 비교 데이터 정렬기입니다.

기본 source가 다른 뷰인 경우 뷰에서 동일한 데이터 정렬 설정을 지정해야 합니다.

데이터 정렬 옵션의 구문은 다음과 같습니다:

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

데이터 정렬을 지정할 때 locale 필드는 필수이고, 다른 데이터 정렬 필드는 모두 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.

db.createView() 메서드는 다음 create 명령 작업을 래핑합니다.

db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline>, collation: <collation> } )

중요

컬렉션 목록 출력에 뷰 이름이 포함됨

db.getCollectionInfos()db.getCollectionNames() 같이 컬렉션을 나열하는 연산은 출력에 뷰를 포함합니다.

뷰 정의는 공개입니다. 즉, 뷰에 대한 db.getCollectionInfos()explain 작업에는 뷰를 정의하는 파이프라인이 포함됩니다. 따라서 뷰 정의에 민감한 필드와 값을 직접 참조하지 않는 것이 좋습니다.

뷰를 생성하는 예제를 확인하려면 다음 페이지를 참고하세요.

뷰의 동작 세부 정보를 보려면 동작을 참조하세요.

← db.createCollection()

이 페이지의 내용