Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

replace 이벤트

이 페이지의 내용

  • 요약
  • 설명
  • 예시
replace

replace 이벤트 는 replaceOne 메서드가 호출될 때와 같이 업데이트 작업이 컬렉션 에서 문서 를 제거하고 새 문서 로 대체할 때 발생합니다.

필드
유형
설명

_id

문서

변경 스트림 이벤트의 식별자 역할을 하는 BSON 객체입니다. 이 값은 변경 스트림을 재개할 때 resumeAfter 매개변수의 resumeToken(으)로 사용됩니다. _id 객체의 형식은 다음과 같습니다.

{
"_data" : <BinData|hex string>
}

_data 유형은 MongoDB 버전 및 경우에 따라 변경 스트림 열기 또는 재개 시점의 기능 호환성 버전(FCV) 에 따라 달라집니다. _data 유형의 전체 목록은 재개 토큰 을 참조하세요.

resumeToken 기준으로 변경 스트림을 재개하는 예시는 변경 스트림 재개를 참조하세요.

clusterTime

타임스탬프

clusterTime 이벤트 와 연결된 oplog 항목의 타임스탬프입니다.

oplog 크기 제한으로 인해다중 문서 트랜잭션은 여러 oplog 항목을 생성할 수 있습니다. 트랜잭션 에서 지정된 oplog 항목에 스테이징된 변경 스트림 이벤트는 동일한 clusterTime 를 주식 합니다.

샤딩된 클러스터에서는 동일한 clusterTime 이벤트가 모두 동일한 트랜잭션과 관련되지 않을 수 있습니다. 일부 이벤트는 트랜잭션과는 전혀 관련이 없습니다.

단일 트랜잭션에 대한 이벤트를 식별하려면 변경 스트림 이벤트 문서에서 lsidtxnNumber 조합을 사용할 수 있습니다.

documentKey

문서

CRUD 작업으로 만들거나 수정한 문서의 _id 값이 들어 있는 문서입니다.

샤딩된 컬렉션의 경우 이 필드에는 문서의 전체 샤드 키도 표시됩니다. _id 필드가 이미 샤드 키의 일부인 경우 반복되지 않습니다.

fullDocument

문서

작업으로 생성된 새 문서입니다.

lsid

문서

트랜잭션과 연결된 세션의 식별자입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

ns

문서

이벤트의 영향을 받는 네임스페이스(데이터베이스 및/또는 컬렉션)입니다.

ns.coll

문자열

이벤트가 발생한 컬렉션의 이름입니다.

ns.db

문자열

이벤트가 발생한 데이터베이스의 이름입니다.

operationType

문자열

변경 알림이 보고하는 작업 유형입니다.

이러한 변경 이벤트에 대해 replace 값을 반환합니다.

txnNumber

NumberLong

lsid 와 함께 트랜잭션을 고유하게 식별하는 데 도움이 되는 숫자입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

다음 예시는 replace 이벤트에 대한 설명입니다.

{
"_id": { <Resume Token> },
"operationType": "replace",
"clusterTime": <Timestamp>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("599af247bb69cd89961c986d")
},
"fullDocument": {
"_id": ObjectId("599af247bb69cd89961c986d"),
"userName": "alice123",
"name": "Alice"
}
}

replace 작업은 업데이트 명령을 사용하며 두 단계로 구성됩니다.

  • documentKey 을 사용하여 원본 문서를 삭제하고

  • 동일한 도구를 사용하여 새 문서를 삽입합니다. documentKey

replace 이벤트의 fullDocument 은 대체 문서 삽입 후의 문서를 나타냅니다.

돌아가기

이름 변경

이 페이지의 내용