MongoDB ドキュメントの削除

以前のいくつかの章で、MongoDB でコレクションにデータを追加し、データを更新する方法を学びました。この章では、MongoDB コレクションの削除について引き続き学びます。

一般的に使用されるドキュメント削除メソッドには、deleteOne()、deleteMany()、および findOneAndDelete() が含まれます。

使用シーン:

  • データクリーンアップ:不要になった古いデータや無効なデータを削除します。
  • データ修正:データ修正の過程で、誤ったドキュメントや重複したドキュメントを削除します。
  • 自動化タスク:自動化スクリプトやタスクで、特定の条件に基づいてドキュメントを削除します。

1、deleteOne()

deleteOne() メソッドは、フィルターに一致する単一のドキュメントを削除するために使用します。

構文:

db.collection.deleteOne(filter, options)
  • filter:削除するドキュメントを検索するためのクエリ条件です。
  • options(オプション):オプションのパラメータオブジェクト。

例

db.myCollection.deleteOne({ name: "Alice" });

戻り値:

{
    "acknowledged": true,
    "deletedCount": 1
}

2、deleteMany()

deleteMany() メソッドは、フィルターに一致するすべてのドキュメントを削除するために使用します。

構文:

db.collection.deleteMany(filter, options)
  • filter:削除するドキュメントを検索するためのクエリ条件です。
  • options(オプション):オプションのパラメータオブジェクト。

例

db.myCollection.deleteMany({ status: "inactive" });

戻り値:

{
    "acknowledged": true,
    "deletedCount": 1
}

3、findOneAndDelete()

findOneAndDelete() メソッドは、単一のドキュメントを検索して削除し、必要に応じて削除したドキュメントを返すことができます。

構文:

db.collection.findOneAndDelete(filter, options)
  • filter:削除するドキュメントを検索するためのクエリ条件です。
  • options:オプションのパラメータオブジェクト、例えばprojection、sortなど。

例

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);

findOneAndDelete は削除されたドキュメントを返します。一致するドキュメントが見つからない場合は null を返します。

削除操作のオプション

これらの削除メソッドの options パラメータには、通常、次のオプションを含めることができます。

  • writeConcern:書き込み操作の確認レベルを指定します。
  • collation:文字列を比較するときに使用する照合順序を指定します。
  • projection(にのみ適用されますfindOneAndDelete):返すフィールドを指定します。
  • sort(にのみ適用されますfindOneAndDelete):削除するドキュメントを決定するための並べ替え順序を指定します。

例

単一のドキュメントを削除:

db.myCollection.deleteOne({ name: "Alice" });

複数のドキュメントを削除:

db.myCollection.deleteMany({ status: "inactive" });

単一のドキュメントを検索して削除:

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);
その他の拡張