AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$mergeObjects (누산기 연산자)

$mergeObjects

각 그룹에 대한 입력 문서를 결합하여 생성된 문서를 반환합니다.

$mergeObjects 축적자 다음 단계에서 사용할 수 있습니다.

참고

명확화

이 페이지에서는 축적자 사용되는 $mergeObjects 에 대해 설명합니다. 축적자는 입력 문서 그룹 에서 애그리게이션된 값을 반환합니다.

다음과 같은 다른 컨텍스트에서도 $mergeObjects를 사용할 수 있습니다.

{ $mergeObjects: <expression> }

<expression> 은 문서 로 평가되는 모든 유효한 표현식 일 수 있습니다.

$mergeObjects null 입력 값을 무시합니다. 모든 입력 값이 null인 경우, $mergeObjects는 빈 문서 { }를 반환합니다.

$mergeObjects 문서를 병합할 때 필드 값을 덮어씁니다. 여러 입력 문서에 동일한 필드 이름이 포함된 경우 출력에는 충돌하는 필드 포함된 마지막 입력 문서 의 값이 포함됩니다.

movieReviews collection을 만듭니다.

db.movieReviews.insertMany( [
{
title: "Galactic Odyssey",
source: "filmCritic",
data: { rating: 8.1, votes: 1482903 }
},
{
title: "Galactic Odyssey",
source: "viewerVault",
data: { tomatometer: 79, audienceScore: 85 }
},
{
title: "Neon Horizon",
source: "filmCritic",
data: { rating: 7.4, votes: 983201 }
},
{
title: "Neon Horizon",
source: "viewerVault",
data: { tomatometer: 68, audienceScore: 74 }
},
{
title: "The Last Protocol",
source: "filmCritic",
data: { rating: 8.7, votes: 2104567 }
},
{
title: "The Last Protocol",
source: "viewerVault",
data: { tomatometer: 91, audienceScore: 88 }
}
] )

각 영화에는 두 개의 문서가 있습니다.

  • rating 및 votes 필드가 있는 FilmCritic에서 가져온 것입니다.

  • tomatometer 및 audienceScore 필드가 있는 뷰어 볼트에서 하나입니다.

두 소스 문서의 필드 이름이 다르기 때문에 $mergeObjects는 이를 결합하여 네 개의 필드를 모두 포함하는 완전한 프로필로 만들 수 있습니다.

다음 파이프라인 $group 단계에서 $mergeObjects를 사용하여 각 소스의 검토 데이터를 각 영화의 단일 문서 로 결합합니다.

db.movieReviews.aggregate( [
{
$group: {
_id: "$title",
allRatings: { $mergeObjects: "$data" }
}
},
{ $sort: { _id: 1 } }
] )

이전 파이프라인의 경우:

  • $group는 title별로 문서를 그룹화하고 $mergeObjects를 사용하여 각 소스의 data 하위 문서를 병합합니다. FilmCritic 및 뷰어 볼트 문서에는 서로 다른 필드 이름이 포함되어 있으므로 병합된 결과에는 두 소스의 모든 필드가 포함됩니다.

  • $sort 결과를 제목별로 알파벳순으로 정렬합니다.

이 페이지 평가하기

이 페이지의 내용