AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ユニークインデックスを持つシャーディングされたコレクション

シャーディングされたコレクションでは、ユニークインデックスがシャードキーであるか、またはそれをプレフィックスとして含む場合を除き、サポートされません。

インデックスに一意の制約を適用すると、コレクション内のドキュメントがフィールドに一意の値が設定されるようになります。シャーディングされたコレクションでは、インデックスがシャードキーであるか、プレフィックスとしてシャードキーが含まれていない限り、 MongoDB はフィールドに一意の制約を強制しません。問題を防ぐ方法は、次のとおりです。

  • シャーディングされたコレクションの場合、シャードキーを 使用しないユニークインデックスを作成すると、createIndexes コマンドを実行するとMongoDB はエラーを返します。

  • コレクションをシャーディングし、そのコレクションにシャードキー を使用しないユニークインデックスが含まれている場合、shardCollection コマンドを実行するとMongoDB はエラーを返します。

1

シャードキーとして使用するインデックスを作成します。

db.names.createIndex( { region_id: 1 } )
region_id_1
2

コレクションのユニークインデックスを作成します。インデックスのプレフィックスとしてシャードキーを含めます。

db.names.createIndex(
{ region_id: 1, email: 1 },
{ unique: true }
)
region_id_1_email_1
3
sh.shardCollection( "accounts.names", { region_id: 1 } )
{
collectionsharded: 'accounts.names',
ok: 1,
'$clusterTime': {
clusterTime: Timestamp( { t: 1759260515, i: 58 } ),
signature: {
hash: Binary.createFromBase64( 'AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0 ),
keyId: Long( '0' )
}
},
operationTime: Timestamp( { t: 1759260515, i: 57 } )
}