이 글은 릴리즈 블로그에서 강조된 MongoDB MQL 언어 기능을 간략하게 검토한 글입니다: MongoDB 4.4: 사용자 중심 엔지니어링. 준비 완료. MongoDB 4.4 릴리스에는 MQL 언어에 대한 여러 가지 기능이 추가되었습니다. 카우치베이스 6.5 출시 쿼리 서비스 및 분석 서비스 모두에서 N1QL의 상당수 기능을 올해 초에 발표했습니다. 자세히 살펴보겠습니다.
MongoDB 4.4 |
Couchbase 6.5 |
|
출시 |
GA: 2020년 7월 |
GA: 2020년 1월 |
새로운 기능은 무엇인가요? |
https://docs.couchbase.com/server/current/introduction/whats-new.html |
|
유니온 세트 작업 |
데이터를 단일 결과 집합으로 변환하는 집계 파이프라인 단계에 $UnionWith를 도입합니다. SQL의 UNION ALL 집합 연산과 거의 동일합니다. https://docs.mongodb.com/master/reference/operator/aggregation/unionWith/#pipe._S_unionWith |
초기 릴리스 이후의 모든 SQL 집합 작업을 지원합니다: 유니온, 유니온 모두, 제외, 모두 제외, 교차, 교차 모두. ALL 수정자는 중복 문서를 반환합니다. ALL 없이 연산을 사용하면 MQL 집계 파이프라인에서 작성해야 하는 정렬 단계를 피할 수 있습니다. 이러한 연산은 SELECT 쿼리가 사용되는 모든 곳(예: 하위 쿼리, 파생 테이블 등)에서 사용할 수 있는 집합 연산입니다. https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/union.html 루카스 에더의 블로그도 참조하세요. https://blog.jooq.org/2015/10/06/you-probably-dont-use-sql-intersect-or-except-often-enough/ |
사용자 지정 집계 표현식 |
여기서 중요한 기능은 사용자가 집계 파이프라인의 일부로 자바스크립트 스니펫을 작성하여 처리를 사용자 정의할 수 있는 $function을 발행하는 것입니다. 또한 $accumulate, $function, $merge 및 $group을 사용하여 사용자 정의 집계를 생성할 수도 있습니다. 이 접근 방식은 모든 쿼리에 대해 작성해야 하므로 장황하고 오류가 발생하기 쉽습니다. In SQL를 사용하여 사용자 정의 집계를 생성하면 로직을 노출하지 않고도 다른 집계처럼 사용할 수 있습니다. 기타 개선 사항으로는 간단한 스칼라 함수가 있습니다. https://docs.mongodb.com/master/release-notes/4.4/#custom-aggregation-expressions |
의 미리 보기를 출시했습니다. SQL 함수 그리고 자바스크립트 함수 표현식을 N1QL에서 사용할 수 있는 모든 곳에 사용할 수 있습니다. 이는 데이터 처리를 위한 모든 복잡한 쿼리의 일부가 될 수 있습니다. 이 기능은 다음 주요 릴리스에서 정식 버전으로 제공될 예정입니다. 몽고DB는 여전히 비즈니스 크리티컬 기능이 부족합니다. 창 기능. 이것은 Couchbase 6.5에서 릴리스되었으며 다음에 큰 영향을 미칩니다. 개발자 생산성. 카우치베이스는 다음을 통해 자바스크립트 기반 집계를 지원합니다. 지도 축소 보기 하지만 액세스 불가 N1QL을 통해 카우치베이스 이벤트 기능 도 자바스크립트로 작성되었습니다. 이는 최신 앱을 위한 확장 가능하고 유연한 인프라를 제공합니다. |
검색 |
전문을 소개합니다. $search 를 기반으로 하지만 MongoDB Atlas 서비스 전용입니다. 몽고DB 제품 자체에는 제한된 검색 기능 루씬을 기반으로 하지 않습니다. $search는 집계 파이프라인에서만 사용할 수 있습니다(예: 업데이트 또는 삭제에 술어로 사용할 수 없음). $search는 모든 파이프라인의 첫 번째 단계에만 사용할 수 있습니다. |
Couchbase 6.5 도입 SEARCH() 함수 및 관련 메타데이터 함수를 사용할 수 있습니다. 간단한 작업을 수행할 수 있습니다. 문자열 검색을 전체 텍스트 검색으로 전환 쿼리 서비스에서 N1QL 옵티마이저와의 긴밀한 통합을 통해 접속사 및 분리를 지원합니다. |
거래 |
다음과 같은 기능을 소개합니다. 컬렉션 및 인덱스 만들기 을 사용할 수 있습니다. 일부 데이터베이스는 트랜잭션 내에서 DDL을 사용할 수 있도록 허용하지만 드문 경우입니다. |
출시 분산 트랜잭션 를 추가했습니다. 이를 통해 애플리케이션이 get/set API를 사용하여 여러 문서에서 직접 작업할 수 있습니다. 분산 트랜잭션은 N1QL 문에 대해 지원되지 않습니다. |
리소스: