Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

update 이벤트

이 페이지의 내용

  • 요약
  • 설명
  • 예시
update

작업이 컬렉션의 문서를 업데이트하면 update 이벤트가 발생합니다.

필드
유형
설명

_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

문서

CRUD 작업에 의해 생성되거나 수정된 문서입니다.

이 필드 는 을(를)(으)로 설정하다 하여 변경 스트림 을 구성한 경우에만 fullDocument updateLookup표시됩니다. 를 사용하여 변경 스트림 을 구성하는 경우 updateLookup 필드 는 업데이트 작업으로 수정된 문서 의 현재 과반수 커밋 버전을 나타냅니다. 원래의 업데이트 작업과 전체 문서 조회 사이에 다른 다수 커밋 작업이 문서 를 수정한 경우 updateDescription에 설명된 변경 사항과 문서 가 상이할 수 있습니다.

자세한 내용은 업데이트 작업을 위한 전체 문서 조회를 참조하세요.

lsid

문서

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

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

ns

문서

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

ns.coll

문자열

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

ns.db

문자열

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

operationType

문자열

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

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

updateDescription

문서

업데이트 작업으로 업데이트되거나 제거된 필드를 설명하는 문서입니다.

updateDescription.
removedFields

배열

업데이트 작업으로 제거된 필드의 배열입니다.

updateDescription.
truncatedArrays

배열

다음 단계 중 하나 이상을 사용하여 파이프라인 기반 업데이트로 수행한 배열 잘림을 기록하는 문서 배열입니다.

전체 배열 이 교체되면 잘린 내용이 updateDescription.updatedFields 아래에 보고됩니다.

updateDescription.
truncatedArrays.
field

문자열

잘린 필드의 이름입니다.

updateDescription.
truncatedArrays.
newSize

integer

잘린 배열 내 요소의 수입니다.

updateDescription.
updatedFields

문서

업데이트 작업으로 수정된 필드에 해당하는 키가 있는 문서입니다. 각 필드의 값은 새 값을 생성한 작업이 아니라 해당 필드의 새 값에 해당합니다.

txnNumber

NumberLong

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

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

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

{
"_id": { <Resume Token> },
"operationType": "update",
"clusterTime": <Timestamp>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("58a4eb4a30c75625e00d2820")
},
"updateDescription": {
"updatedFields": {
"email": "alice@10gen.com"
},
"removedFields": ["phoneNumber"],
"truncatedArrays": [ {
"field" : "vacation_time",
"newSize" : 36
} ]
}
}

다음 예시에서는 fullDocument : updateLookup 옵션으로 열린 변경 스트림에 대한 update 이벤트를 보여 줍니다.

{
"_id": { <Resume Token> },
"operationType": "update",
"clusterTime": <Timestamp>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("58a4eb4a30c75625e00d2820")
},
"updateDescription": {
"updatedFields": {
"email": "alice@10gen.com"
},
"removedFields": ["phoneNumber"],
"truncatedArrays": [ {
"field" : "vacation_time",
"newSize" : 36
} ]
},
"fullDocument": {
"_id": ObjectId("58a4eb4a30c75625e00d2820"),
"name": "Alice",
"userName": "alice123",
"email": "alice@10gen.com",
"team": "replication"
}
}

fullDocument 문서는 업데이트된 문서의 최신 다수 커밋 버전을 나타냅니다. fullDocument 문서는 업데이트 작업과 문서 조회 사이에 발생한 과반수 커밋 작업의 인터리빙 수에 따라 업데이트 작업 당시의 문서와 다를 수 있습니다.

돌아가기

갈다

이 페이지의 내용