mongodb lookup 예제
augusztus 2, 2019 7:49 de. cccccccccccccc선택적. 파이프라인 필드 단계에서 사용할 변수를 지정합니다. 변수 식을 사용하여 문서 입력에서 $lookup 단계까지 필드에 액세스합니다. 새로운 $expr 연산자와 $lookup 대한 새로운 let 및 파이프라인 구문은 MongoDB에서 SQL 조인을 복제하는 데 큰 시간이 걸리지 않습니다. 파이프라인 구문은 localField 및 foreignField에서 수행할 수 있는 간단한 왼쪽 외부 조인을 넘어 날짜 및 숫자 비교를 기반으로 깊이 중첩된 조회 및 일치를 가능하게 합니다. MongoDB 3.6에는 새로운 $lookup 구문 외에도 몇 가지 흥미로운 새 집계 기능이 있으므로 모든 새로운 기능을 활용하도록 업그레이드해야 합니다. MongoDB 드라이버로 업그레이드하십시오 .= 3.0.0 또는 몽구스 =5.0.0 먼저 업그레이드하십시오. 설명서에 따르면 $lookup 하나의 외부 컬렉션만 참여할 수 있습니다. 확실히 이것은 $lookup 집계 연산자 사용 방법과 시기를 이해하는 데 도움이 될 것입니다. 이를 효과적으로 사용할 수 있도록 연습하십시오.
일반적으로 순서에는 여러 항목이 포함될 수 있으므로 배열 요소 내에서 $lookup 수행하는 방법을 살펴보겠습니다. (참고 :이 예제에서는 매우 일찍 했던 것을 빌렸기 때문에 컬렉션 및 필드 이름의 사례 스타일이 표준이 아닙니다!) Mongodb 3.2 및 이후 버전에서 지원하는 조인 기능. 집계 쿼리를 사용하여 조인을 사용할 수 있습니다. 아래 예제를 사용하여 수행할 수 있습니다. $expr 연산자는 계산된 속성을 기반으로 쿼리할 수 있습니다. 이 기능은 $lookup 특히 강력하지만 쿼리에도 유용합니다. 예를 들어, 주식의 총 비용이 $1000를 초과하는 모든 주식 보유를 찾고 싶다고 가정해 보겠습니다. 즉, 주식 * basePrice 1000 `StockHolding`컬렉션에서 모든 문서를 찾을 수 있습니다. 이전 버전의 MongoDB에서는 $where 연산자와 함께 이 작업을 수행할 수 있지만 $where 운영자는 수많은 제한, 성능 제한 및 보안 문제로 어려움을 겪고 있습니다. MongoDB는 $where 대체로 $expr 사용하는 것이 좋습니다.
다음 조회를 진행하기 전에 각 결과 문서를 해제해야 합니다 $lookup. 이제 $lookup 연산자로 두 컬렉션에 조인을 쿼리할 수 있습니다. 이 쿼리에서는 명확성을 위해 „_id” 필드를 제거합니다 $lookup. 각 시나리오의 예제를 제공합니다. 다음으로 국가 코드를 국가 이름에 페어링하는 조회 테이블을 만듭니다: JOIN은 MongoDB 집계 $lookup 연산자가 RDBMS에서 수행하는 것과 같은 두 개의 컬렉션에 대해 JOIN을 얻는 데 유용하고 강력한 SQL 데이터베이스와 NoSQL 데이터베이스 간의 주요 차이점 중 하나입니다. $lookup 다음 필드와 함께 문서를 걸립니다 $lookup. 새 $lookup 구문은 let 및 파이프라인 속성을 localField 및 foreignField를 대체합니다. 외쳐필드의 값이 localField의 값과 동일한 컬렉션에서 문서를 찾는 정확한 같음 일치를 수행하는 대신 보다 정교한 조회를 정의할 수 있도록 하고 파이프라인을 사용할 수 있습니다. 특히 사용할 로컬 컬렉션의 속성(이 경우 `StockHolding`)을 정의하고 파이프라인은 출력을 계산하는 중첩 집계 파이프라인을 정의합니다. 관계형 데이터베이스 모델에는 몇 가지 이론적 장점이 있지만 많은 실제 제한 사항, 주로 테이블 간에 데이터를 함께 조인해야 합니다. 조인은 성능을 저해하고, 스케일링을 억제하며, 교과서 예제를 제외한 모든 사례에 상당한 기술적 및 인지 적 오버헤드를 도입합니다.
$lookup 연산자는 제품의 다른 단어 조인 주문에서 특정 제품에 대한 모든 주문을 받지 않을 수 있습니다.
Kategória: Egyéb kategória
Írta: Gabor