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

문서의 샤드 키 값 변경

샤드 키 필드가 변경할 수 없는 _id 필드가 아닌 경우 문서의 샤드 키 값을 업데이트할 수 있습니다.

중요

샤드 키 값을 업데이트하는 경우

  • 반드시 mongos에서 수행해야 합니다. 샤드에서 직접 작업을 실행하지 않아야 합니다.

  • 반드시 트랜잭션에서 실행하거나 재시도 가능 쓰기로 실행해야 합니다 .

  • 반드시 쿼리 필터의 전체 샤드 키에 대한 동등 조건을 포함해야 합니다. 예를 들어, { activityid: 1, userid : 1 }을 샤드 키로 사용하는 messages 컬렉션을 가정해 보겠습니다. 문서의 샤드 키 값을 업데이트하려면 쿼리 필터에 activityid: <value>, userid: <value>를 포함해야 합니다. 필요에 따라 쿼리에 추가 필드를 포함할 수 있습니다.

샤드 컬렉션에 대해 실행할 때 추가 작업별 요구 사항은 특정 쓰기 명령/메서드를 참조하세요.

샤드 키 값을 업데이트하려면 다음 작업을 사용합니다.

명령
메서드

multi: false업데이트

db.collection.replaceOne()


db.collection.updateOne()

null이 아닌 값으로 설정하려면 업데이트를 반드시 트랜잭션 내부에서 수행하거나 재시도 가능 쓰기로 수행해야 합니다.

db.collection.findOneAndReplace()


db.collection.findOneAndUpdate()


db.collection.findAndModify()

null이 아닌 값으로 설정하려면 업데이트를 반드시 트랜잭션 내부에서 수행하거나 재시도 가능 쓰기로 수행해야 합니다.

db.collection.bulkWrite()


Bulk.find.updateOne()

샤드 키 수정으로 인해 문서가 다른 샤드로 이동하는 경우 일괄 작업에서 샤드 키 수정을 두 번 이상 지정할 수 없으며 배치 크기는 1이어야 합니다.

샤드 키를 수정해도 문서가 다른 샤드로 이동하지 않는 경우 일괄 작업에서 여러 샤드 키 수정을 지정할 수 있습니다.

null이 아닌 값으로 설정하려면 작업을 반드시 트랜잭션 내부에서 수행하거나 재시도 가능 쓰기로 수행해야 합니다.

경고

샤딩된 컬렉션의 문서에는 샤드 키 필드가 누락될 수 있습니다. 문서의 샤드 키 값을 변경할 때 실수로 샤드 키를 제거하지 않도록 주의해야 합니다.

location 필드에 샤딩된 sales 컬렉션을 가정해 보겠습니다. 컬렉션에 _id 12345location ""이 있는 문서가 포함되어 있습니다. 이 문서의 필드 값을 업데이트하려면 다음 명령을 실행하면 됩니다.

db.sales.updateOne(
{ _id: 12345, location: "" },
{ $set: { location: "New York"} }
)
이 페이지 평가하기

이 페이지의 내용