문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

문서의 샤드 키 값 변경

이 페이지의 내용

  • 예제

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

중요

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

  • 에 있어야 합니다 mongos . 샤드에서 직접 작업을 실행하지 마세요 .

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

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

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

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

명령
메서드
multi: false업데이트

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

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

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

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

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

경고

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

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

db.sales.updateOne(
{ _id: 12345, location: "" },
{ $set: { location: "New York"} }
)

다음도 참조하세요.

← 컬렉션 리샤딩

이 페이지의 내용