Delete Documents
Overview
このガイドでは、削除操作を使用して 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_many() の例
この例では、次のアクションを実行します。
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 ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。