Docs Menu
Docs Home
/ / /
Java Reactive Streams ドライバー
/

Delete Documents

項目一覧

  • Overview
  • サンプル データ
  • 削除操作
  • 単一ドキュメントの削除
  • 複数のドキュメントの削除
  • 削除操作をカスタマイズする
  • 詳細情報
  • API ドキュメント

このガイドでは、 Java Reactive Streams ドライバーを使用して、削除操作を実行し、 MongoDBコレクションからドキュメントを削除する方法を学習できます。

削除操作は、 MongoDBコレクションから 1 つ以上のドキュメントを削除します。 削除操作は、 deleteOne()またはdeleteMany()メソッドを使用して実行できます。

このガイドの例では、 Atlasサンプルデータセットsample_restaurants.restaurantsコレクションを使用します。

無料のMongoDB Atlasクラスターを作成し、サンプルデータセットをロードする方法については、「 を使い始める 」チュートリアルを参照してください。

重要

プロジェクトリ アクター ライブラリ

このガイドでは、プロジェクト Reactive ライブラリを使用して、 Java Reactive Streams ドライバー メソッドによって返されたPublisherインスタンスを消費します。 Project Reactive ライブラリとその使用方法の詳細については、「 使用 開始 」を 参照してください。 (Reactor ドキュメントの参照)。このガイドでは Project React ライブラリ メソッドをどのように使用しているかについて詳しくは、「 MongoDBへのデータの書込み」ガイドを参照してください。

MongoDB では、次の方法で削除操作を実行できます。

  • deleteOne()は、検索条件に一致する最初のドキュメントを削除します。

  • deleteMany()は、検索条件に一致するすべてのドキュメントを削除します

各削除方法にはクエリフィルターが必要です。これは、削除対象として選択するドキュメントを決定する検索条件を指定します。 クエリフィルターの詳細については、 MongoDB Serverマニュアルの「クエリフィルター ドキュメント 」セクションを参照してください。

MongoDBコレクションから単一ドキュメントを削除するには、 deleteOne()メソッドを呼び出し、クエリフィルターを渡します。 次に、 deleteOne()の結果をMonoから静的Mono.fromメソッドに渡します。 Monoは、プロジェクト Reactor ライブラリのクラスです。 Java Reactive Streams では、ドライバー メソッドはコールドPublisherインスタンスを返します。つまり、返されたPublisherをサブスクライブしないと、対応する操作は実行されません。 このガイドでは、Project Reactor ライブラリを使用してそれらを消費します。 Monoの詳細については、 MongoDB を参照してください プロジェクト React のドキュメントを参照してください。

次の例では、 nameの値が"Ready Penny Inn"であるドキュメントをrestaurantsコレクションから削除します。

Publisher<DeleteResult> deletePublisher = restaurants.deleteOne(
eq("name", "Ready Penny Inn"));
Mono.from(deletePublisher).block();

MongoDBコレクションから複数のドキュメントを削除するには、 deleteMany()メソッドを呼び出し、クエリフィルターを渡します。 次に、 deleteMany()の結果をMonoから静的Mono.fromメソッドに渡します。 Monoは、プロジェクト Reactor ライブラリのクラスです。 Java Reactive Streams では、ドライバー メソッドはコールドPublisherインスタンスを返します。つまり、返されたPublisherをサブスクライブしないと、対応する操作は実行されません。 このガイドでは、Project Reactor ライブラリを使用してそれらを消費します。 Monoの詳細については、 MongoDB を参照してください プロジェクト React のドキュメントを参照してください。

次の例では、 boroughの値が"Brooklyn"であるrestaurantsコレクション内のすべてのドキュメントを排除します。

Publisher<DeleteResult> deletePublisher = restaurants.deleteMany(
eq("borough", "Brooklyn"));
Mono.from(deletePublisher).block();

DeleteOptionsクラスには、削除メソッドの動作を変更するメソッドが含まれています。 DeleteOptionsクラスを使用するには、クラスの新しいインスタンスを構築し、1 つ以上のそのメソッドを呼び出して 削除操作を変更します。 これらのメソッド呼び出しを連鎖させることができます。 削除操作の動作を変更するには、クラスインスタンスと連結されたメソッド呼び出しを メソッドまたは メソッドの 2deleteOne() deleteMany()番目の引数として渡します。

削除メソッドを変更するには、 DeleteOptionsクラスの次のメソッドを使用します。 すべてのメソッドは任意です。

方式
説明
collation (Collation collation)
Specifies the kind of language collation to use when sorting results. For more information, see Collation in the MongoDB Server manual.
hint (Bson hint)
Gets or sets the index to scan for documents. For more information, see the hint statement in the MongoDB Server manual.
hint (String hint)
Gets or sets the index to scan for documents. For more information, see the hint statement in the MongoDB Server manual.
let (Bson variables)
A map of parameter names and values. Values must be constant or closed expressions that don't reference document fields. For more information, see the let statement in the MongoDB Server manual.
comment (BsonValue comment)
A comment to attach to the operation. For more information, see the delete command fields guide in the MongoDB Server manual for more information.
comment (String comment)
A comment to attach to the operation. For more information, see the delete command fields guide in the MongoDB Server manual for more information.

次のコードでは、 deleteMany()メソッドを使用して、string "Mongo"を含むname値を持つrestaurantsコレクション内のすべてのドキュメントを削除します。 また、 commentメソッドを使用して操作にコメントを追加します。

Publisher<DeleteResult> deletePublisher = restaurants.deleteMany(
regex("name", "Mongo"),
new DeleteOptions().comment("Deleting Mongo restaurants"));
Mono.from(deletePublisher).block();

Java Reactive Streams ドライバーを使用してドキュメントを挿入する実行可能なコード例については、 「 MongoDBへのデータの書込み」ガイドを参照してください。

このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。

戻る

ドキュメントの置換