반응형

이번에는 몽고DB에서 데이타를 삭제하는 방법을 알아볼 것이다.

remove는 단일 혹은 다수 삭제가 모두 가능하고 deleteOne은 단일 삭제만 deleteMany는 다수 삭제만

가능하다. MongoDB 3.2버전부터 remove 대신 deleteOne, deleteMany로 대체되었다.

 

1. 삭제(remove)

MySQL에서 'DELETE FROM' 과 매칭되는 명령이다.

insert 혹은 update명령과 비슷한 형태로 사용하게 되는데 단순히 삭제할 조건만 넣어주면 된다.

먼저 위와 같이 데이터를 넣어놓고, 이름이 "최길동"인 사용자를 삭제해보도록 하겠다.

db.users.remove({name: "최길동"});

실행 결과

정상적으로 삭제되었으며, 조건에 따라 단일 삭제가 될 수도 있고 다수 삭제가 될 수도 있다.

예를 들어, 나이가 27살 이상인 사용자를 삭제하고 싶을 경우 다음 명령을 사용한다.

db.users.remove({age: {$gte: 27}});

($gte 연산자는 'greater than or equal'의 약자로 '같거나 크면'의 의미를 갖는다.

 여러 연산자에 대해서는 다음 포스팅에서 다뤄볼 예정이다.)

이와 같이 3개가 삭제되었다는 메세지가 나오며, 조회해보니 정상적으로 삭제된 것을 확인할 수 있다.

remove()의 사용법을 알아보았다. 하지만 몽고3.2 이후에는 deleteOne, deleteMany로 대체되었으니,

remove의 사용은 자제하는 것이 좋다.

 

2. 단일 삭제(deleteOne)

지난번 포스팅에서 설명했던 insertOne, insertMany, updateOne, updateMany와 같은 형태로 용법이 비슷하고,

바로 위에 설명한 remove() 용법이 단일, 다수 삭제 기능으로 분리된 것 뿐이기에 간단하게 설명하고 넘어갈 것이다.

 

db.users.deleteOne({name: "최길동"});

'최길동'이라는 사용자 도큐먼트를 삭제하는 명령이다.

(최길동이라는 사용자가 두명이면 가장 처음의 '최길동' 사용자 도큐먼트만 삭제된다.)

 

db.users.deleteOne({});

처음 도큐먼트 한개를 삭제하는 명령이다.

 

db.users.deleteOne({age: {$gte: 27}});

age 필드가 27 이상의 도큐먼트 중 처음 도큐먼트 한개를 삭제하는 명령이다.

 

3. 다수 삭제(deleteMany)

조건에 해당하는 데이타를 모두 삭제할 때 사용한다.

 

db.users.deleteMany({name: "최길동"});

'최길동'이라는 사용자 도큐먼트를 모두 삭제한다.

 

db.users.deleteMany({});

users 컬렉션의 모든 도큐먼트를 삭제하는 명령이다.

 

db.users.deleteMany({age: {$gte: 27}});

age 필드가 27 이상의 도큐먼트를 모두 삭제한다.

 

 

반응형

+ Recent posts