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> 피연산자는 다음 중 하나일 수 있습니다.

  • 병합할 문서 배열 로 평가되는 단일 표현식 입니다. 예시 들어 $blogPosts은 문서 필드 blogPosts에 문서 배열 이 포함되어 있습니다.

  • 각 표현식이 문서 로 평가되는 표현식의 배열 . 예시 들어, [ "$doc1", "$doc2", "$doc3" ]은 각 문서 필드 에 단일 문서 포함되어 있습니다.

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

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

예시
결과
{ $mergeObjects: [ { a: 1 }, null ] }
{ a: 1 }
{ $mergeObjects: [ null, null ] }
{ }
{
$mergeObjects: [
{ a: 1 },
{ a: 2, b: 2 },
{ a: 3, c: 3 }
]
}
{ a: 3, b: 2, c: 3 }
{
$mergeObjects: [
{ a: 1 },
{ a: 2, b: 2 },
{ a: 3, b: null, c: 3 }
]
}
{ a: 3, b: null, c: 3 }

이 페이지의 예제에서는 sample_mflix 데이터 세트의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.

다음 파이프라인 $replaceWith의 $mergeObjects를 사용하여 각 영화의 imdb 및 tomatoes.critic 하위 문서를 단일 ratings 문서 로 병합합니다. 두 하위 문서 모두 rating 필드 포함하므로 $mergeObjects이(가) imdb 등급을 tomatoes.critic 등급으로 덮어씁니다. 각 하위 문서의 고유 필드는 결과에 유지됩니다.

db.movies.aggregate( [
{
$match: {
genres: "Action",
year: 2010,
"imdb.rating": { $exists: true },
"tomatoes.critic.rating": { $exists: true }
}
},
{ $sort: { title: 1 } },
{ $limit: 5 },
{
$replaceWith: {
title: "$title",
year: "$year",
ratings: { $mergeObjects: [ "$imdb", "$tomatoes.critic" ] }
}
}
] )

이전 파이프라인의 경우:

  • $match는 기존 imdb.rating 및 tomatoes.critic.rating가 있는 2010의 액션 영화를 필터링합니다.

  • $sort는 title을 기준으로 문서를 알파벳순으로 정렬합니다.

  • $limit 가독성을 높이기 위해 출력을 5 문서로 제한합니다.

  • $replaceWith는 $mergeObjects를 사용하여 $imdb와 $tomatoes.critic를 ratings 필드 로 병합합니다.

    • 두 하위 문서 모두 rating 필드 포함하고 있으므로, $mergeObjects는 tomatoes.critic의 값(마지막 인수)을 사용합니다.

    • imdb의 고유 필드 votes 및 id, tomatoes.critic의 numReviews 및 meter는 모두 보존됩니다.

이 페이지 평가하기

이 페이지의 내용