조건을 사용하여 문서 삭제
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 }
]);
출력은 네 개의 문서가 삽입되었음을 확인합니다.
{
"acknowledged": true,
"insertedIds": {
"0": ObjectId("..."),
"1": ObjectId("..."),
"2": ObjectId("..."),
"3": ObjectId("...")
}
}
이제 조건부 삭제를 수행해 보겠습니다. 40 세가 넘는 모든 직원을 제거합니다.
db.employees.deleteMany({ age: { $gt: 40 } });
출력은 하나의 문서가 삭제되었음을 나타냅니다.
{ "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 }
- 이 명령은 두 가지 조건을 결합합니다.
department는 "Sales"여야 하고 salary는 55,000 미만이어야 합니다 ($lt 연산자 사용).
결과를 확인하려면 employees 컬렉션에 남아 있는 문서를 확인합니다.
db.employees.find();
출력에는 삭제 기준을 충족하지 않은 두 명의 직원만 표시됩니다.