728x90
반응형
MongoDB Update
MongoDB에서는 update_one()과 update_many()라는 메소드를 사용하여 수정
1. update_one()를 사용하여 수정하기
update_one()는 단일 도큐먼트를 수정
수정할 데이터는 데이터를 삽입할 때처럼 딕셔너리를 넣으면 되지만, 수정 내용은 $set 연산자를 명시해주어야 한다
#문법 collection.update_one(수정할 데이터, 수정 내용)
#예시) 주소 "Vally 345"에서 "Canyon 123"으로 수정
query = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }
mycol.update_one(query, newvalues)
2. update_many()를 사용하여 수정하기
수정 내용은 하나의 데이터를 수정할 때와 마찬가지로 $set연산자를 이용하여 넘겨주면 된다
반대로 update_many()는 수정할 데이터가 여러 개이므로 정규 표현식을 이용해야 한다.
정규 표현식을 이용하기 위해서 $regex연산자를 사용
#문법 collection.update_many(수정할 데이터, 수정 내용)
#예시) 주소가 문자"S"로 시작하는 모든 도큐먼트 수정
query = { "address": { "$regex": "^S" } }
newvalues = { "$set": { "name": "Minnie" } }
mycol.update_many(query, newvalues)
💡 Tip!
MongoDB 쉘에서는 updaetOne() 메소드로 매칭되는 하나의 도큐먼트만 수정하고,
updateMany() 메소드로 매치되는 모든 도큐먼트를 수정
MongoDB Delete
도큐먼트를 지우는 작업은 매우 신중해야 한다
MongoDB에서는 이전으로 되돌리는 롤백 기능이 없다 (롤백과 유사한 효과를 볼 수 있는 기능이 있긴 함)
1. delete_one()를 사용하여 삭제하기
delete_one() - 하나의 데이터를 삭제
두 개 이상의 도큐먼트를 작성한면 첫 번째 항목만 삭제된다
#문법 컬렉션.delete_one(삭제할 데이터)
#예시) 주소가 "Mountain 21"인 도큐먼트 삭제
query = { "address": "Mountain 21" }
mycol.delete_one(query)
2. delete_many()를 사용하여 삭제하기
delete_many() - 두 개 이상의 도큐먼트를 삭제
#문법 컬렉션.delete_many(삭제할 데이터)
#예시) 주소가 문자 "S"로 시작하는 모든 도큐먼트 삭제
query = { "address": {"$regex": "^S"} }
mycol.delete_many(query)
💡 Tip!
MongoDB 쉘에서 deleteOne() 하나의 도큐먼트만 삭제,
deleteMany() 메소드로 매치되는 모든 도큐먼트를 삭제
반응형
댓글