Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

欠落しているシャードキー フィールドの設定

項目一覧

シャードキー フィールドがない場合は、シャードキー フィールドを nullに設定できます。 欠落しているシャードキー フィールドにnull以外の値を設定する場合は、「 ドキュメントのシャードキー値の変更 」を参照してください。

更新を実行するには、 mongosで次の操作を使用できます。

コマンド
方式
説明
update with
multi: true
  • 欠落しているキー値をnullのみに設定するために使用できます。

  • トランザクション内またはトランザクション外で実行できます。

  • 再試行可能な書き込み として実行することも、実行しないこともできます。

  • 追加の要件については、特定の コマンドまたはメソッドを参照してください。

update with
multi: false
  • 欠落しているキー値をnullまたはその他の値に設定するために使用できます。

  • 欠落しているシャードキー フィールドを設定するための更新は、次のいずれかの要件を満たす必要があります。

    • クエリのフィルターに、クエリ内の完全なシャードキーに対する等価条件が含まれている

    • クエリのフィルターに、_id の完全一致が含まれている

    • 単一のシャードを対象としている更新

  • null以外の値に設定するには、 「 ドキュメントのシャードキー値の変更 」を参照してください。

  • 追加の要件については、特定の コマンドまたはメソッドを参照してください。

  • 欠落しているキー値をnullまたはその他の値に設定するために使用できます。

  • 1 つのドキュメントのみを明示的に更新するメソッドで欠落しているシャードキー フィールドを設定する場合、更新は次のいずれかの要件を満たす必要があります。

    • クエリのフィルターに、クエリ内の完全なシャードキーに対する等価条件が含まれている

    • クエリのフィルターに、_id の完全一致が含まれている

    • 単一のシャードを対象としている更新

  • 欠落しているキー値は、 nullで一致させるときに返されます。 nullであるキー値の更新を回避するには、必要に応じて追加のクエリ条件を含めます。

  • null以外の値に設定するには、 「 ドキュメントのシャードキー値の変更 」を参照してください。

  • 追加の要件については、特定の コマンドまたはメソッドを参照してください。

  • null値に設定するには、一括操作で複数のシャードキーの変更を指定できます。

  • 1 つのドキュメントのみを明示的に更新するメソッドで欠落しているシャードキー フィールドを設定する場合、更新は次のいずれかの要件を満たす必要があります。

    • クエリのフィルターに、クエリ内の完全なシャードキーに対する等価条件が含まれている

    • クエリのフィルターに、_id の完全一致が含まれている

    • 単一のシャードを対象としている更新

  • null以外の値に設定するには、 「 ドキュメントのシャードキー値の変更 」を参照してください。

  • 追加の要件については、基礎となるコマンドまたはメソッドを参照してください。

locationフィールドでシャーディングされているsalesコレクションについて考えてみましょう。 コレクション内の一部のドキュメントには、 locationフィールドがありません。 欠落しているフィールドは、フィールドの null 値と同じとみなされます。 これらのフィールドを明示的にnullに設定するには、次のコマンドを実行します。

db.sales.updateOne(
{ _id: 12345, location: null },
{ $set: { location: null } }
)

欠落しているシャードキー フィールドをdb.collection.updateOne()または 1 つのドキュメントのみを明示的に更新する別のメソッドで設定する場合、更新は次のいずれかの要件を満たしている必要があります。

  • クエリのフィルターに、クエリ内の完全なシャードキーに対する等価条件が含まれている

  • クエリのフィルターに、_id の完全一致が含まれている

  • 単一のシャードを対象としている更新

戻る

ドキュメントのシャードキー値の変更

項目一覧