게시글

강좌5 - MongoDB - 4년 전 등록

삭제(Delete 또는 Remove)

안녕하세요. 이번 시간에는 CRUD 마지막 시간으로 Delete 기능에 대해 알아보겠습니다.

문서를 지우는 작업이니만큼 신중하게 해야합니다. 몽고DB는 롤백(이전으로 되돌리는 기능)을 지원하지 않습니다. 롤백하는 한 가지 방법이 있긴 합니다. 그 방법은 나중에 설명할 oplog를 사용하는 겁니다. oplog란 미리 알려드리자면, 데이터베이스에 어떤 쿼리를 했는지 기록으로 남겨두는 겁니다. 그 기록을 거꾸로 돌리면 롤백과 유사한 효과를 볼 수 있습니다. 하지만 지금은 oplog를 사용하지 않기 때문에 삭제하는 데 주의하도록 합시다.

Remove

db.test.remove({ });

를 하면 전체가 지워집니다. 지우는 동작을 하기 전에는 항상 신중하게 판단하고 하세요. 책임은 자신에게 있습니다.

db.monsters.insert({ name: 'Zerp' });

Zero 몬스터를 만들려다 실수로 오타를 냈습니다. 이것을 삭제해 봅시다. 첫 번째 인자가 지울 다큐먼트를 선택하는 부분입니다.

db.monsters.remove({ name: 'Zerp' }); // WriteResult({ 'nRemoved': 1 })

잘 지워졌습니다. nRemoved는 지워진 다큐먼트의 수를 의미합니다.

DeleteOne, DeleteMany

몽고DB 3.2 버전부터는 Remove 메소드를 대체하는 두 메소드가 추가되었습니다.

db.monsters.deleteOne({ name: 'Zerp' });

사용 방법은 거의 같습니다. 하지만 deleteOne은 매칭되는 첫 번째 다큐먼트만 지우고, deleteMany는 매칭되는 모든 다큐먼트를 지운다는 점에서 차이가 있습니다. remove 메소드를 세분화한 겁니다.

다음 시간에는 쿼리 연산자에 대해 알아보겠습니다!

조회수:
0
목록
투표로 게시글에 관해 피드백을 해주시면 게시글 수정 시 반영됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.
Copyright 2016- . 무단 전재 및 재배포 금지. 출처 표기 시 인용 가능.

댓글

아직 댓글이 없습니다.