본문 바로가기

과목/빅데이터

MongoDB update, findAndModify

update 시 $set 설정을 안하면 사용자가 설정한 값만 덮어씌워진다. 해당 field만 바꾸고 싶다면 꼭 $set 붙여야 함. findAndModify도 마찬가지.


첫번째 인자는 찾을 값이다. 투어팁스라는 이름을 찾았다. 두번째 인자는 바꿀 값이다. url, name, explain, category 등의 field를 변경한다.

1
2
db.recommendsites.update({name:'투어팁스'},
{url:'https://www.jobkorea.co.kr/',name:'jobkorea',explain:'취업 포털',category:'getjob'})
cs

만약 name이라는 특정 field만 변경하고 싶다면 


1
2
db.recommendsites.update({name:'투어팁스'},
{$set:{explain:'취업 포털'}})
cs


findAndModify는 new:true면 수정 이후 값을 반환한다. 수정한 이후에 값이 어떻게 바뀌었는지 사용자에게 보여주려면 findAndModify 메소드를 사용한다.


upsert란 update+insert의 합성어다. update를 하되 변경하려는 값이 없으면 insert를 해버리는 것이다. 찾으려는 값이 없음에도 불구하고 설정한 값을 저장하려면 upsert:true를 해주면 된다.




https://www.zerocho.com/category/MongoDB/post/579e2821c097d015000404dc