MongoDB NOSQL 데이터베이스에서 조인을 사용합니다
NOSQL 데이터베이스 인 MongoDB는 버전 3.2에서 새로운
운영자를 도입하여 두 세트 이상의 세트에서 왼쪽 결합과 유사한 작업을 수행하여 관계 데이터베이스와 유사한 데이터를 달성 할 수 있습니다. 그러나이 연산자는 집계 작업에 사용되는 것으로 제한되며, 이는 간단한 조회 쿼리보다 더 복잡하고 일반적으로 느리게됩니다.-
MongoDB의 연산자는 4 개의 매개 변수가 필요합니다 :
- (출력 필드의 이름). 이 연산자는 포스트를 일치시키기 위해 집계 쿼리에서 사용하고 순서대로 정렬하고 항목 수를 제한하며 사용자 데이터를 연결하고 사용자 배열을 평평하게하고 필요한 필드 만 반환 할 수 있습니다.
$lookup
MongoDB의 localField
운영자는 유용하고 NOSQL 데이터베이스에서 소량의 관계형 데이터를 관리하는 데 도움이 될 수 있지만 SQL의보다 강력한 조인 조항을 대체하는 것은 아닙니다. MongoDB에서 사용자 문서가 삭제되면 Orphan 게시물 문서가 유지되어 제약 조건이 부족합니다. 따라서 운영자가 자주 사용되는 경우 잘못된 데이터 저장소가 사용되며 관계형 (SQL) 데이터베이스가 더 적합 할 수 있음을 나타낼 수 있습니다.from
foreignField
from
as
동료 검토 도움에 대한 Julian Motz에게 감사드립니다. -
SQL과 NOSQL 데이터베이스의 가장 큰 차이점 중 하나는 조인입니다. 관계형 데이터베이스에서 SQL Join 조항을 사용하면 공통 필드를 사용하여 두 개 이상의 테이블에서 행을 결합 할 수 있습니다. 예를 들어, 책과 출판사 테이블이있는 경우 다음 SQL 명령을 작성할 수 있습니다. $lookup
다시 말해서, 책 테이블에는 게시자 테이블에서 ID 필드를 참조하는 Publisher_ID 필드가 있습니다.$lookup
이것은 단일 출판사가 수천 권의 책을 제공 할 수 있기 때문에 실용적입니다. 앞으로 게시자의 세부 정보를 업데이트 해야하는 경우 개별 레코드를 변경할 수 있습니다. 각 책에 대한 게시자의 정보를 반복 할 필요가 없기 때문에 데이터 중복성이 최소화됩니다. 이 기술을 표준화라고합니다.
SQL 데이터베이스는 관계 유지를 보장하기 위해 다양한 표준화 및 제약 조건을 제공합니다.
$lookup
(문서의 검색 필드를 입력), (연결할 수있는 컬렉션), () 및
이것은 항상 그런 것은 아닙니다…
mongodb 집계
집계 작업에서만 사용할 수 있습니다. 그것을 쿼리, 필터 및 그룹 결과로하는 일련의 연산자의 파이프 라인으로 생각하십시오. 한 연산자의 출력은 다음 연산자에 대한 입력으로 사용됩니다.
$lookup
필드가 필요합니다. SQL 기본 키와 유사하게 필요한 경우 자동으로 삽입됩니다.
필드에 작성한 사용자에 대한 텍스트, 날짜, 등급 및 참조를 저장합니다.
SELECT book.title, publisher.name FROM book LEFT JOIN book.publisher_id ON publisher.id;
필터를 사용하여 게시물 컬렉션에서 올바른 등급을 가진 모든 문서를 추출해야합니다.
_id
_id
연산자를 사용하여 일치하는 항목을 역 순서로 정렬해야합니다.
단계를 적용 할 수 있습니다.
user_id
{ "_id": ObjectID("45b83bda421238c76f5c1969"), "name": "User One", "email": "userone@email.com", "country": "UK", "dob": ISODate("1999-09-13T00:00:00.000Z") }
<🎜 🎜> <<> :
컬렉션에서 발견 된 필드
<🎜 🎜> <<> : 출력 필드의 이름. $match
{ "_id": ObjectID("17c9812acff9ac0bba018cc1"), "user_id": ObjectID("45b83bda421238c76f5c1969"), "date": ISODate("2016-09-05T03:05:00.123Z"), "text": "My life story so far", "rating": "important" }
$sort
및
{ "$match": { "rating": "important" } }
$limit
마지막으로, 파이프 라인의
SELECT book.title, publisher.name FROM book LEFT JOIN book.publisher_id ON publisher.id;
결과는 최대 20 개의 문서 모음입니다. 예를 들면 :
{ "_id": ObjectID("45b83bda421238c76f5c1969"), "name": "User One", "email": "userone@email.com", "country": "UK", "dob": ISODate("1999-09-13T00:00:00.000Z") }
mongodb
는 유용하고 강력하지만이 기본 예에도 복잡한 집계 쿼리가 필요합니다. SQL에서 더 강력한 조인 절을 대체 할 수는 없습니다. MongoDB는 또한 제약 조건을 제공하지 않습니다.{ "_id": ObjectID("17c9812acff9ac0bba018cc1"), "user_id": ObjectID("45b83bda421238c76f5c1969"), "date": ISODate("2016-09-05T03:05:00.123Z"), "text": "My life story so far", "rating": "important" }
운영자는 거의 필요하지 않아야합니다. 자주 필요하면 잘못된 데이터 저장소를 사용했을 수 있습니다 ...
관계형 데이터가있는 경우 관계형 (SQL) 데이터베이스를 사용하십시오! $lookup
는 Mongodb 3.2에 인기있는 추가 기능입니다. NOSQL 데이터베이스에서 소량의 관계형 데이터를 사용할 때 더 실망스러운 문제를 극복합니다. $lookup
MongoDB NOSQL 데이터베이스 (FAQ) 에서 조인 사용에 대한 FAQ
MongoDB의단계는 어떻게 작동합니까?
MongoDB의
단계를 사용하면 다른 컬렉션 ( "Connected"컬렉션)에서 문서를 연결하고 연결된 문서를 입력 문서에 추가 할 수 있습니다. 단계는 문서와 일치하도록 ""Collection ","Localfield "및"Outisefield "와 문서를 출력하기위한"AS "필드를 지정합니다. SQL의 왼쪽 외부 조인과 유사하며 입력 수집에서 모든 문서를 반환하고 "From"컬렉션의 문서를 일치시킵니다. $lookup
단계를 제공합니다.
스테이지는 지정된 세트에서 재귀 검색을 수행하며 검색의 깊이와 폭을 제한하도록 선택할 수 있습니다. 레벨 수를 알 수 없거나 변경 될 수있는 계층 적 데이터 또는 그래프를 쿼리하는 데 유용합니다.MongoDB 연결을 사용할 때 성능을 최적화하는 방법은 무엇입니까?
MongoDB 연결을 사용할 때 성능을 최적화하려면 다음과 같은 전략을 고려하십시오 🎜> 스테이지 및 스테이지를 필터링하고 문서를 변환합니다.
MongoDB 연결을 사용할 때 NULL 또는 결 측값을 처리하는 방법은 무엇입니까?
메소드보다 고급 데이터 처리 기능을 제공하는 집계 프레임 워크의 일부입니다. $lookup
스테이지를 연결하여 여러 MongoDB 컬렉션을 연결할 수 있습니다. 각 단계는 다른 컬렉션의 연결된 문서를 입력 문서에 추가합니다. $lookup
$lookup
및
스테이지는 샤드 세트를 "From"세트로 받아 들일 수 있습니다. 그러나 추가 네트워크 오버 헤드로 인해 성능이 비 쉐이브 컬렉션만큼 좋지 않을 수 있습니다. $lookup
$lookup
위상을 추가하여 MongoDB에서 연결된 문서를 정렬 할 수 있습니다. 단계는 지정된 필드의 문서를 오름차순 또는 내림차순으로 정렬합니다. $match
메소드와 함께 사용할 수 없습니다. 및
스테이지는 $lookup
$graphLookup
위 내용은 MongoDB NOSQL 데이터베이스에서 조인을 사용합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다

이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th

이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오
