AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

delete 이벤트

delete

delete 이벤트는 사용자 또는 애플리케이션이 delete 명령을 실행하는 경우와 같이 작업이 컬렉션에서 문서를 제거할 때 발생합니다.

필드
유형
설명

_id

문서

변경 스트림 이벤트의 식별자 역할을 하는 BSON 객체. 이 값은 변경 스트림 재개할 때 resumeAfter 매개변수의 resumeToken 로 사용됩니다. _id 객체 내의 필드는 MongoDB 버전에 따라 달라지며, 경우에 따라 변경 스트림이 열리거나 재개된 시점의 기능 호환성 버전 (FCV) 에 따라 달라집니다.

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

clusterTime

타임스탬프

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

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

동일한 clusterTime 이벤트가 모두 동일한 트랜잭션 과 관련되지 않을 수 있습니다. 일부 이벤트는 트랜잭션 과 전혀 관련이 없습니다. MongoDB 8.0 부터 모든 배포서버 서버의 이벤트에 해당될 수 있습니다. 이전 버전에서는 이 동작이 샤딩된 클러스터 의 이벤트에 대해서만 가능했습니다.

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

버전 8.0에서 변경되었습니다.:

collectionUUID

UUID

변경이 발생한 컬렉션을 식별하는 UUID입니다.

버전 6.0에 추가 되었습니다.:

collectionUUID 필드 showExpandedEvents 필드 true로 설정하다 변경 스트림 생성한 경우에만 포함됩니다. 자세한 내용은 showExpandedEvents를 참조하세요.

documentKey

문서

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

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

lsid

문서

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

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

ns

문서

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

ns.coll

문자열

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

ns.db

문자열

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

operationDescription

문서

변경 작업에 대한 추가 정보입니다.

이 문서와 해당 하위 필드는 변경 스트림이 확장 이벤트를 사용하는 경우에만 표시됩니다.

버전 6.0에 추가 되었습니다.:

operationType

문자열

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

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

txnNumber

NumberLong

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

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

wallTime

데이터베이스 작업의 서버 날짜 및 시간입니다. wallTime은(는) clusterTime이(가) 데이터베이스 작업 이벤트와 관련된 oplog 항목에서 가져온 타임스탬프라는 점에서 clusterTime와(과) 다릅니다.

버전 6.0에 추가 되었습니다.:

MongoDB 6.0부터 다음 단계를 수행하면 문서가 변경(또는 삭제) 되기 전의 필드가 포함된 fullDocumentBeforeChange 문서가 표시됩니다.

  1. db.createCollection(), create, 또는 collMod을(를) 사용하는 컬렉션에 대해 새 changeStreamPreAndPostImages 필드를 활성화합니다.

  2. fullDocumentBeforeChange을(를) "required" 또는 db.collection.watch() 에서 "whenAvailable"(으)로 설정합니다.

변경 스트림 출력의 예시 fullDocumentBeforeChange 문서입니다.

"fullDocumentBeforeChange" : {
"_id" : ObjectId("599af247bb69cd89961c986d"),
"userName" : "alice123",
"name" : "Alice Smith"
}

변경 스트림s 출력에 대한 전체 예시는 전후 이미지를 포함하는 문서의 변경 스트림s를 참조하세요.

이미지가 다음과 같은 경우 변경 스트림 이벤트에 사전 및 사후 이미지를 사용할 수 없습니다.

  • 문서 업데이트 또는 삭제 작업 시 collection에서 활성화되지 않았습니다.

  • expireAfterSeconds에서 전후 이미지 보존 시간 설정 이후에 제거됩니다.

    • 다음 예시에서는 전체 클러스터에서 expireAfterSeconds100초로 설정합니다.

      use admin
      db.runCommand( {
      setClusterParameter:
      { changeStreamOptions: {
      preAndPostImages: { expireAfterSeconds: 100 }
      } }
      } )

      참고

      The setClusterParameter 명령은 MongoDB Atlas 클러스터에서 지원되지 않습니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 Atlas 에서 지원되지 않는 명령을 참조하세요.

    • 다음 예시에서는 expireAfterSeconds 등 현재 changeStreamOptions 설정을 반환합니다.

      db.adminCommand( { getClusterParameter: "changeStreamOptions" } )
    • expireAfterSecondsoff로 설정하면 기본 보존 정책이 사용되며, 해당 변경 스트림 이벤트가 oplog에서 제거될 때까지 사전 및 사후 이미지가 보존됩니다.

    • 변경 스트림 이벤트가 oplog에서 제거되면 expireAfterSeconds 사전 및 사후 이미지 보존 시간에 관계없이 해당 사전 및 사후 이미지도 삭제됩니다.

추가 고려 사항

  • 전후 이미지를 활성화하면 저장 공간이 소모되고 처리 시간이 늘어납니다. 필요한 경우에만 전후 이미지를 활성화하세요.

  • 변경 스트림 이벤트 크기를 16메비바이트 미만으로 제한합니다. 이벤트 크기를 제한하려면 다음을 수행하면 됩니다.

    • 문서 크기를 8메가바이트로 제한합니다. updateDescription과 같은 다른 변경 스트림 이벤트 필드가 크지 않은 경우 변경 스트림 출력에서 사전 및 사후 이미지를 동시에 요청할 수 있습니다.

    • updateDescription과 같은 다른 변경 스트림 이벤트 필드가 크지 않은 경우, 최대 16메비바이트 문서에 대해 변경 스트림 출력에서 사후 이미지만 요청합니다.

    • 다음과 같은 경우 최대 16메비바이트의 문서에 대해 변경 스트림 출력에서 사전 이미지만 요청합니다.

      • 문서 업데이트가 문서 구조나 내용의 작은 부분에만 영향을 미칩니다. 그리고

      • replace 변경 이벤트를 발생시키지 않습니다. replace 이벤트에는 항상 후이미지가 포함됩니다.

  • 사전 이미지를 요청하려면 db.collection.watch()에서 fullDocumentBeforeChangerequired 또는 whenAvailable로 설정합니다. 사후 이미지를 요청하려면 동일한 방법으로 fullDocument를 설정합니다.

  • 사전 이미지가 config.system.preimages 컬렉션에 기록됩니다.

    • config.system.preimages collection은 커질 수 있습니다. collection 크기를 제한하려면 앞서 표시된 대로 사전 이미지에 대해 expireAfterSeconds 시간을 설정할 수 있습니다.

    • config.system.preimages의 크기를 모니터링하려면 샤드 클러스터의 샤드 노드 또는 mongod 노드에 연결합니다. 그 다음, 다음 명령어를 실행하세요.

      use config
      db.system.preimages.totalSize()
      db.system.preimages.stats()

      참고

      이 명령을 실행하려면 config.system.preimages 컬렉션에 대한 collStats 권한 조치가 있어야 합니다.

      MongoDB Atlas 배포서버에서 이 명령을 실행하려면 atlasAdmin 역할이 있어야 합니다.

    • 사전 이미지는 백그라운드 프로세스가 비동기적으로 제거합니다.

중요

이전 버전과 호환되지 않는 기능

MongoDB 6.0부터는 변경 스트림에 문서 사전 및 사후 이미지를 사용하는 경우 이전 MongoDB 버전으로 다운그레이드하기 전에 collMod 명령을 사용하여 각 collection에 대해 changeStreamPreAndPostImages를 비활성화해야 합니다.

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

{
"_id": { <Resume Token> },
"operationType": "delete",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>,
"ns": {
"db": "engineering",
"coll": "users"
},
"documentKey": {
"_id": ObjectId("599af247bb69cd89961c986d")
}
}

변경 스트림 커서가 delete 이벤트를 클라이언트에 보낼 때 문서가 더 이상 존재하지 않으므로 fullDocument 문서는 생략됩니다.