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

Delete Documents

項目一覧

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

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

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

このガイドの例では、 Atlas サンプル データセットsample_restaurantsデータベースのrestaurantsコレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 Atlas を使い始める 」ガイドを参照してください。

次の機能を使用して削除操作を実行できます。

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

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

各削除関数は次のパラメータを受け入れます。

  • コレクション : 変更するコレクションを指定します。

  • クエリフィルタードキュメント: 削除するコレクションドキュメントを指定します。クエリフィルターの詳細については、 MongoDB Serverマニュアルの「 クエリフィルター ドキュメント 」セクションを参照してください。

  • 結果のロケーション:操作結果を含む上書き可能なストレージへのポインター、またはNULL を指定します。

  • エラー ロケーション: エラー値、つまりNULL のロケーションを指定します。

次の例では、mongoc_collection_delete_one() 関数を使用して、name の値が "Ready Penny Inn" である restaurantsコレクション内のドキュメントを削除します。

bson_t *filter = BCON_NEW ("name", BCON_UTF8 ("Ready Penny Inn"));
bson_error_t error;
if (!mongoc_collection_delete_one (collection, filter, NULL, NULL, &error)) {
printf ("Delete error: %s\n", error.message);
}
bson_destroy (filter);

次の例では、mongoc_collection_delete_many() 関数を使用して、borough の値が "Brooklyn" である restaurantsコレクション内のすべてのドキュメントを削除します。

bson_t *filter = BCON_NEW ("borough", BCON_UTF8 ("Brooklyn"));
bson_error_t error;
if (!mongoc_collection_delete_many (collection, filter, NULL, NULL, &error)) {
printf ("Delete error: %s\n", error.message);
}
bson_destroy (filter);

オプション値を指定するBSONドキュメントを渡すことで、mongoc_collection_delete_one() 関数と mongoc_collection_delete_many() 関数の動作を変更できます。次の表では、ドキュメントに設定できるオプションの一部について説明しています。

フィールド
説明

collation

Specifies the kind of language collation to use when comparing text. For more information, see Collation in the MongoDB Server manual.
Type: bson_t

writeConcern

Sets the write concern for the operation.
Defaults to the write concern of the namespace.
Type: mongoc_write_concern_t

let

Specifies a document with a list of values to improve operation readability. 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.
Type: bson_t

comment

A comment to attach to the operation. For more information, see the insert command fields guide in the MongoDB Server manual.
Type: bson_value_t

次の例では、mongoc_collection_delete_many() 関数を呼び出して、name 値に string "Mongo" が含まれる restaurantsコレクション内のすべてのドキュメントを削除します。また、 comment オプションを設定して、操作にコメントを追加します。

bson_t *filter = BCON_NEW ("name", "{", "$regex", BCON_UTF8 ("Mongo"), "}");
bson_error_t error;
bson_t opts;
bson_init(&opts);
BCON_APPEND (&opts, "comment", BCON_UTF8 ("Deleting Mongo restaurants"));
if (!mongoc_collection_delete_many (collection, filter, &opts, NULL, &error)) {
printf ("Delete error: %s\n", error.message);
}
bson_destroy (filter);
bson_destroy (&opts);

Tip

前述の例で mongoc_collection_delete_many() ではなく mongoc_collection_delete_one() 関数を使用すると、ドライバーは name 値に "Mongo" を含む最初のドキュメントのみを削除します。

このガイドで説明されている関数の詳細については、次のAPIドキュメントを参照してください。

戻る

Update