이 블로그는 광고 클릭 수익으로 운영됩니다!
괜찮으시다면 광고 차단을 풀어주세요 ㅠㅠ

게시글

강좌5 - MongoDB - 2년 전 등록

삭제(Delete 또는 Remove)

조회수:
0
이 블로그는 광고 클릭 수익으로 운영됩니다!
괜찮으시다면 광고 차단을 풀어주세요 ㅠㅠ
이 블로그는 광고 클릭 수익으로 운영됩니다!
괜찮으시다면 광고 차단을 풀어주세요 ㅠㅠ

안녕하세요. 이번 시간에는 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 메소드를 세분화한 겁니다.

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

투표로 게시글에 관해 피드백을 해주시면 많은 도움이 됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.
Copyright © 2016- 무단 전재 및 재배포 금지

댓글

아직 댓글이 없습니다.