바닥코딩
MongoDB 명령어(Update & Delete) 본문
이번 포스트 에서는 MongoDB 에서 update와 delete 명령어에 대해 다루어 보겠습니다.
updateOne
https://dkkim2318.tistory.com/125
update 관련 명령어는 일전에 다루었던 insert 명령어와 유사합니다. insertOne을 통해 하나의 document를 insert 하고 insertMany를 통해 여러 document를 한번에 insert 했던 것과 같이 update도 단일 update를 위한 updateOne과 updateMany 명령어를 제공합니다. 먼저 updateOne 부터 알아보겠습니다.
먼저 user 라는 collection에 아래와 같이 데이터가 존재하고 있습니다.
이중 username이 person1인 document의 password 값을 update 해보겠습니다
db.user.updateOne({username : "person1"}, {$set:{"password" : "1234"}})
updateOne의 첫번째 인자로는 조건(쿼리)을 삽입해 줍니다, 두번 쨰 인자로는 변경할 필드와 변경 값을 기입해 주면 되는데 이 때 $set 명령어를 통해 변경 값을 세팅 하는 것이 가능합니다.
해당 명령어를 실행하면 위와 같이 password 값이 변경 된 것을 확인 할 수 있습니다.
updateMany
다음으로는 updateMany 함수입니다. 해당 함수는 여러 개의 값을 udpate하는데 사용합니다. updateMany는 updateOne과 동일하게 인자를 가집니다. 예를 들어 password가 1111인 모든 document를 password를 1234로 update한다고 한다면
db.user.updateMany({password : "1111"}, {$set:{"password" : "1234"}})
위와 같은 명령어를 통해 여러 개의 값을 update 하는 것이 가능합니다
그런데 만약 모든 값을 일괄적으로 같은 값으로 update를 하는 경우도 존재할 수 있습니다. 이럴 때에는 첫번째 인자 값에 {}을 넣어주면 모든 document를 한번에 update하는 것이 가능합니다
db.user.updateMany({}, {$set : {password : "1111"}})
replaceOne
replaceOne은 특정 document를 대체할 다른 document를 지정해 그 값을 치환하는 명령어 입니다. udpate와 차이가 있나? 라고 생각할 수 있지만 update와 달리 replaceOne은 기존 document를 수정하는 것이 아니라 새로운 document로 교체를 진행합니다. 만약 update를 할 필드가 너무 많아 일일이 변경될 field값이나 삭제해야할 field 를 지정하는 것이 복잡할 경우 사용하기 유용한 명령어 입니다.
위에 예시에서 username이 person1인 document를 replaceOne을 통해 치환 해 보겠습니다.
db.user.replaceOne({username:"person1"},{username :"person1", password :"1234"})
deleteOne
deleteOne은 특정 document 하나를 삭제하는 명령어 입니다. udpateOne의 첫번째 인자와 같이 쿼리를 통해 삭제한 document를 지정해 주면 해당 document를 삭제합니다.
db.user.deleteOne({username:"person1"})
deleteMany
updatemany와 같이 조건에 맞는 여러 값들을 모두 삭제합니다
db.user.deleteMany({password :"1111"})
drop
document만을 삭제하는 것이 아니라 collection이나 database를 삭제하고 싶은 경우도 존재할 수 있습니다. drop은 삭제하고 싶은 collection을 지정하여 삭제를 하는 명령어 입니다.
db.user.drop()
dropDatabase
drop이 collection을 삭제했다면 dropDatabase 명령어는 데이터베이슬 삭제합니다
db.dropDatabase()
'데이터 베이스 > MongoDB' 카테고리의 다른 글
Replica set 이론 (0) | 2024.01.19 |
---|---|
집합 파이프라인 (0) | 2023.08.15 |
MongoDB 배열 (0) | 2023.08.14 |
논리, 비교 Query (0) | 2023.06.18 |
MongoDB 명령어(Read) (0) | 2023.06.18 |