ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

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

項目一覧

シャードキー フィールドがない場合は、シャードキー フィールドを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 の完全一致が含まれている

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

項目一覧