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;MongoDB Aggregation Query는 각 작업을 순서대로 정의하는 다양한 파이프 라인 연산자를 통과합니다. 먼저
필터를 사용하여 게시물 컬렉션에서 올바른 등급을 가진 모든 문서를 추출해야합니다.
_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") }대단해! 마침내 NOSQL로 전환 할 수 있습니다!
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

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

이 GO 기반 네트워크 취약점 스캐너는 잠재적 보안 약점을 효율적으로 식별합니다. 속도를 위해 Go의 동시성 기능을 활용하고 서비스 감지 및 취약성 일치를 포함합니다. 그 능력과 윤리를 탐색합시다


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

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

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.
