Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$createObjectId (집계) (표현식 연산자)

버전 8.3에 추가 되었습니다.

$createObjectId

새 임의의 ObjectId() 값을 생성합니다.

$createObjectId 집계 파이프라인 또는 표현식 기반 업데이트 에서 고유한 ObjectId 값을 생성하려면 를 사용합니다.

예시 들어, 새 식별자 필드를 생성하거나 기존 id 값을 대체하여 다른 단계에서 문서를 구분할 수 있도록 할 수 있습니다. 여기에는 _id $graphLookup 와 같이안정적인 값에 의존하는 연산자가 포함됩니다.

$createObjectId 의 구문은 다음과 같습니다:

{
$createObjectId: { }
}

참고

빈 객체 ({})를 인수로 사용해야 합니다.

$createObjectId 다음과 같이 동작합니다.

Argument
행동

{}

BSON type 의 새 임의 값을 ObjectId() 반환합니다.

기타 값

작업이 FailedToParse(으)로 실패했습니다.

기존 값을 ObjectId로 변환하려면 를 $toObjectId 사용합니다.

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

이 예시 다른 집계 단계에서 안정적인 _id 값을 사용할 수 있도록 뷰에 ObjectId 값을 추가합니다.

sample_mflix 데이터베이스 에서 원래 _id 필드 숨기는 movies 컬렉션 에 대한 뷰를 만듭니다.

db.createView(
"moviesView",
"movies",
[
{ $project: { _id: 0, title: 1, cast: 1 } }
]
)

에 의존하는 단계는 문서에 더 이상 필드 없기 때문에 이 보기에서 예상대로 작동하지 _id _id 않습니다. 예시 를 들어 와 같은 그래프 순회 단계에서는 $graphLookup _id 내부적으로 를 사용하여 방문한 문서를 추적 하고 중복된 결과를 제거합니다.

안정적인 식별자가 필요한 단계에서 이 뷰를 사용하려면 로 고유한 _id 필드 추가하는 두 번째 $createObjectId 뷰를 만듭니다.

db.createView(
"moviesViewWithId",
"moviesView",
[
{
$project: {
_id: { $createObjectId: {} }, // unique id
title: 1,
cast: 1
}
}
]
)

이제 의 각 문서 별개의 노드 로 취급하는 집계 실행 수 moviesViewWithId 있습니다. 예시 를 들어, 다음 단계는 각 영화에 출연진을 주식 다른 영화를 $graphLookup 찾습니다.

db.movies.aggregate( [
{
$graphLookup: {
from: "moviesViewWithId",
startWith: "$cast",
connectFromField: "cast",
connectToField: "cast",
as: "relatedMovies"
}
}
] )

이 파이프라인 에서 는 뷰의 각 문서 에서 고유한 ObjectId 값을$createObjectId 갖도록 _id 합니다. 그러면 안정적인 식별자에 의존하는 단계에서 문서를 올바르게 구분할 수 있습니다.

돌아가기

$covarianceSamp

이 페이지의 내용