반응형
첫번째 인수는 찾는 것, 두번째 인수는 변경할 값
{
id:1,
username:"ssar"
} 인데
db.users.update({id:1}, {username:"hong"})으로 바꾸려고할때
id를 찾아서 hong으로 바꾸는게 아니라
통으로 바꿔버린다.
이걸 해결하는 방법이 $set붙이기!
db.users.updateOne({id:1}, {$set:{username: "hong"}});
document에 없는 키를 넣을 경우 필드가 추가된다.
필드가 없으면 추가되고 있으면 변경된다.
update에는 옵션이 있다.
1. update 옵션 (기본값: false) updateOrInsert
이 값이 true 로 설정되면 query한 document가 없을 경우, 새로운 document를 추가한다.
db.users.updateOne({id:4}, {$set:{email: "hong@nate.com"}}, {upsert:true});
2. multi 옵션 (기본값: false)
이 값이 true 로 설정되면, 여러개의 document 를 수정한다.
db.users.update({email:"hong@nate.com"}, {$set:{email:"ssar@nate.com"}}, {multi:true});
문서가 아닌 필드를 날리고싶을 때는 update를 사용한다.
update로 문서자체를 날릴수는 없음 !!
db.users.update({id:4}, {$unset:{email:"ssar@nate.com"}});
[출처]
https://cafe.naver.com/metacoding
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9
반응형