티스토리 뷰

개인 공부를 위하여 몽고디비 공식문서를 한글로 번역한 글입니다.

이 페이지는 다음 몽고 셸 메서드를 사용한다.

  • db.collection.deleteMany()
  • db.collection.deleteOne()

이 페이지의 예시들은 inventory 컬렉션을 사용한다. inventory 컬렉션을 덧붙이기 위하여, 다음을 실행하자:

db.inventory.insertMany( [
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
] );

> 모든 도큐먼트 삭제

컬렉션의 모든 도큐먼트를 삭제하기 위하여, db.collection.deleteMany() 메서드에 빈 필터 도큐먼트 {}를 전달하자:

db.inventory.deleteMany({})

메서드는 연산 상태와 함께 도큐먼트를 반환한다. 더 많은 정보와 예시는 deleteMany()를 참조하라.

> 조건에 일치하는 모든 도큐먼트 삭제

지우고 싶은 도큐먼트를 표시하는 기준 또는 필터를 지정할 수 있다. 필터는 읽기 연산에서와 동일한 문법을 사용한다.

동등 조건을 지정하기 위하여, 쿼리 필터 도큐먼트에 <field>:<value> 표현을 사용하자:

{ <field1>: <value1>, ... }

쿼리 필터 도큐먼트는 다음 형식에서 조건을 지정하기 위하여 쿼리 연산자를 사용할 수 있다:

{ <field1>: { <operator1>: <value1> }, ... }

삭제 기준에 일치하는 모든 도큐머트르 삭제하기 위하여, deleteMany() 메서드에 필터 파라미터를 전달하자.

다음 예시는 inventory 컬렉션에 status 필드가 "A"인 모든 도큐먼트를 삭제한다:

db.inventory.deleteMany( { status: "A" } )

메서드는 연산의 상태와 함께 도큐먼트를 반환한다. 더 많은 정보와 예시는 deleteMany()를 참조하라.

> 조건에 일치하는 단 하나의 도큐먼트 삭제

지정된 필터에 일치하는 하나의 도큐먼트를 삭제하기 위하여 (다수의 도큐먼트가 지정된 필터에 일치할지라도) db.collection.deleteOne() 메서드를 사용하자.

다음 예시는 status가 "D"인 첫 번째 도큐먼트를 삭제한다:

db.inventory.deleteOne( { status: "D" } )

> 삭제 동작

  • 인덱스
    • 삭제 연산은 컬렉션의 모든 도큐먼트를 삭제할지라도, 인덱스를 드롭하지 않는다. 
  • 원자성
    • 몽고디비에서 모든 쓰기 작업들은 단일 도큐먼트 레벨에서 원자적이다.

 

728x90
댓글