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