Docs Menu
Docs Home
/ / /
Rust ドライバー
/ / /

Delete Documents

項目一覧

  • Overview
  • サンプルデータの例
  • 削除操作
  • パラメーター
  • オプション
  • 戻り値
  • 削除の例
  • 削除の例 1 つ
  • 削除の例
  • 詳細情報
  • API ドキュメント

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

このガイドには、次のセクションが含まれています。

  • サンプル データの例では、削除操作の例で使用されるサンプル データが示されています

  • 「削除操作」では、ドライバーを使用して削除操作を実行する方法について説明します

  • 削除の例では、削除操作のコード例を提供します

  • 追加情報では、このガイドで言及されている型とメソッドのリソースとAPIドキュメントへのリンクを提供します

このガイドの例では、次のサンプル ドキュメントを使用します。 各ドキュメントは、店舗の在庫内の商品を表し、その分類と単価に関する情報が含まれています。

{ "item": "trowel", "category": "garden", "unit_price": 9.89 },
{ "item": "placemat", "category": "kitchen", "unit_price": 3.19 },
{ "item": "watering can", "category": "garden", "unit_price": 11.99 }

Rust ドライバーは、削除操作を実行するための delete_one()およびdelete_many()メソッドを提供します。

delete_one()メソッドとdelete_many()メソッドは、クエリフィルターをパラメーターとして受け取ります。 クエリフィルターは、一致するドキュメントの基準を形成するフィールドと値で構成されます。

オプション ビルダー メソッドをdelete_one()delete_many()に連鎖させることで、削除操作メソッドの動作を変更できます。 これらのオプション メソッドはDeleteOptions構造体フィールドを設定します。

注意

設定オプション

オプション ビルダのメソッドを削除メソッドの呼び出しに直接連結することで、 DeleteOptionsフィールドを設定できます。 以前のバージョンのドライバーを使用している場合は、オプション ビルダー メソッドをbuilder()メソッドに連結してDeleteOptionsインスタンスを構築する必要があります。 次に、オプション インスタンスをパラメーターとしてdelete_one()またはdelete_many()に渡します。

次の表では、 DeleteOptionsで利用できるオプションについて説明しています。

オプション
説明

collation

The collation to use when sorting results. To learn more about collations, see the Collations guide.

Type: Collation
Default: None

write_concern

The write concern for the operation. If you don't set this option, the operation inherits the write concern set for the collection. To learn more about write concerns, see Write Concern in the Server manual.

Type: WriteConcern

hint

The index to use for the operation. To learn more about indexes, see Indexes in the Server manual. This option is available only when connecting to MongoDB Server versions 4.4 and later.

Type: Hint
Default: None

let_vars

A map of parameters and values. These parameters can be accessed as variables in aggregation expressions. This option is available only when connecting to MongoDB Server versions 5.0 and later.

Type: Document

comment

An arbitrary Bson value tied to the operation to trace it through the database profiler, currentOp, and logs. This option is available only when connecting to MongoDB Server versions 4.4 and later.

Type: Bson
Default: None

次のコードは、 comment()メソッドをdelete_one()メソッドに連結してcommentフィールドを設定する方法を示しています。

let res = my_coll
.delete_one(filter)
.comment(bson!("hello!"))
.await?;

delete_one()メソッドとdelete_many()メソッドはDeleteResult型を返します。 このタイプには、削除されたドキュメント数を示すdeleted_countプロパティが含まれています。 指定したクエリフィルターに一致するドキュメントがない場合、削除操作によってドキュメントは削除されず、 deleted_countの値は0になります。

このセクションでは、次の削除操作のコード例を示します。

次の例では、delete_one() メソッドを使用して、item の値が "placemat" であるドキュメントを削除します。

let filter = doc! { "item": "placemat" };
let res = my_coll.delete_one(filter).await?;
println!("Deleted documents: {}", res.deleted_count);
Deleted documents: 1

この例では、次のアクションを実行します。

  • delete_many()メソッドを呼び出します

  • categoryの値が"garden"であるドキュメントに一致するクエリフィルターをdelete_many()に渡します

  • hint()メソッドをdelete_many()にチェーンして、 _id_インデックスを削除操作のヒントとして使用します

let filter = doc! { "category": "garden" };
let hint = Hint::Name("_id_".to_string());
let res = my_coll
.delete_many(filter)
.hint(hint)
.await?;
println!("Deleted documents: {}", res.deleted_count);
Deleted documents: 2

注意

上記のコード例でdelete_many()ではなくdelete_one()メソッドを使用すると、ドライバーはクエリフィルターに一致する 2 つのドキュメントのうち最初のドキュメントのみを削除します。

削除操作の実行可能な例については、次の使用例を参照してください。

このガイドの操作の詳細については、次のドキュメントを参照してください。

このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

Modify