NoSQL/MongoDB
[MongoDB] 몽고디비 데이터 수정(update), 삭제(delete)
씨네
2022. 4. 20. 13:25
728x90

db.qclass.updateOne({name:'y-js'}, {$set: {name:'you-js'}})
db.qclass.find({},{_id:0, name:1})

updateOne은 하나의 데이터를 수정합니다.
위의 코드에서는 name이 y-js인 것을 you-js로 수정합니다.
db.qclass.updateOne({name:/hong/}, {$set:{name:'홍길동'}})

해당 코드는 name에 hong이 들어가는 것들을 수정합니다.
db.qclass.updateMany({midterm:{$exists:true}}, {$set:{class:'graduated'}})

updateMany는 여러가지 데이터를 수정합니다.
midterm이 존재하는 것들의 class를 'graduated'로 수정합니다
db.qclass.updateOne({midterm:{$exists:true}}, {$set:{class:'sclass'}})

updateOne을 사용했기 떄문에 하나의 데이터만 수정합니다.
db.qclass.find()

db.qclass.replaceOne({final:{$exists:true}}, {name:'less', class:'qclass'})

replace도 update함수처럼 데이터를 수정하는 함수이지만 updateOne에는 update 영역에 $set을 넣고 도큐먼트를 감싸야 합니다.
replaceOne은 document만 넣어도 대체 가능합니다.
function updateMath(){
var tmp = db.qclass.updateMany({math:{$lt:100}}, {$set:{kor: 0}})
return tmp
}
updateMath()
db.qclass.find({}, {_id:0, name:1, math:1, kor:1})

updateMath를 함수로 만드렁서 함수를 실행하는 방법도 가능합니다.
db.qclass.deleteOne({name:'홍길동'})
-- math field가 존재하는 document들 삭제
db.qclass.deleteMany({math:{$exists:true}})

728x90