条件を使用したドキュメントの削除
MongoDB では、強力なクエリ演算子を使用して、より複雑な条件に基づいてドキュメントを削除できます。このステップでは、$gt (より大きい) や $lt (より小さい) のような演算子を使用して条件付き削除を実行する方法を学びます。
まず、employees という名前の新しいコレクションにサンプルデータを作成しましょう。
db.employees.insertMany([
{ name: "John Doe", age: 25, department: "Sales", salary: 50000 },
{ name: "Jane Smith", age: 35, department: "Marketing", salary: 60000 },
{ name: "Bob Johnson", age: 45, department: "Sales", salary: 55000 },
{ name: "Alice Brown", age: 30, department: "HR", salary: 52000 }
]);
出力は、4 つのドキュメントの挿入を確認します。
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("..."),
"1": ObjectId("..."),
"2": ObjectId("..."),
"3": ObjectId("...")
}
}
次に、条件付き削除を実行しましょう。40 歳を超えるすべての従業員を削除します。
db.employees.deleteMany({ age: { $gt: 40 } });
出力は、1 つのドキュメントが削除されたことを示します。
{ "acknowledged": true, "deletedCount": 1 }
{ age: { $gt: 40 } }: このフィルターは $gt 演算子を使用して、age フィールドが 40 より大きいドキュメントを選択します。
次に、複数の条件に基づいて削除を実行しましょう。「Sales」部門で給与が 55,000 未満の従業員を削除します。
db.employees.deleteMany({
department: "Sales",
salary: { $lt: 55000 }
});
出力は、別のドキュメントが削除されたことを確認します。
{ "acknowledged": true, "deletedCount": 1 }
- このコマンドは 2 つの条件を組み合わせています。
department は "Sales" でなければならず、salary は 55,000 未満 ( $lt 演算子を使用) でなければなりません。
結果を確認するには、employees コレクションに残っているドキュメントを表示します。
db.employees.find();
出力には、削除基準を満たさなかった 2 人の従業員のみが表示されます。