· update()
- 앞서 insert, find, remove를 통해 데이터를 추가, 확인, 삭제를 할 수 있었다면,
Document의 field를 수정하는 기능도 필요 - field를 수정하는 메소드가 update()
이번에도 이론보다는 실습으로 해보자.
이번 실습을 도와줄 데이터.
1. field 정보 업데이트와 document 대체
· name field가 eungi(은지)인 document의 height field값을 168로 수정하고 싶다.
→ 특정 field 값을 수정할 때는 '$set' 연산자를 사용한다.
→ '$set'연산자를 사용하지 않을 시에는 document 자체가 대체된다.
2. 특정 field 제거
· name field가 dongho인 document의 grade field를 제거하고 싶다.
→ 제거는 추가, 갱신 명령어 '$set'과 반대로 '$unset'을 사용한다.
3. query에 해당되지않는 document 추가
· name field에 eunhye인 document가 없다.
→ '$set'으로 값 추가 역할을 해주면서 'upsert'을 통해 document를 추가한다.
(upsert: query한 document가 없을 경우 새 documnet를 추가해주는 parameter)
4. 여러 document의 특정 field 수정
· 신장 170이하 field를 갖는 documnet의 height값을 전부 170이하로 갱신하고 싶다.
→ '$lte'연산자를 통해 query에 부합하는 document를 찾고, '$set'을 통해 해당 update를 해준다.
→ multi parameter을 true로 해줌으로써, 해당하는 documnent의 특정 field들 수정한다.
·name field가 dongho인 document에 skills : python을 갖는 배열을 추가하고 싶다.
→ update parameter자리에 'push'를 이용한다.
→ 또한 여러 개의 값을 추가하면서 정렬까지 한번에 가능하다. (sort 기능 사용)
5. document내 배열 값 제거
·name field가 dongho인 document에 skills배열에 java와 c를 제거하고 싶다.
→ 특정 배열 값 제거는 pull을 시작으로 '$in'안에 제거하고자 하는 값을 추가함으로써 제거가 가능하다.
몽고DB세미나 끝! 이제 지옥이 시작되겠지....
'SEMINAR > 몽고DB' 카테고리의 다른 글
MongoDB Error: couldn't connect to server 127.0.0.1:27017 오류해결 (0) | 2022.12.07 |
---|---|
MongoDB - sort(), limit(), skip() (0) | 2020.05.04 |
MONGODB - Document조회 (0) | 2020.04.26 |
MONGODB-Database/Collection/Document 생성·제거와 Insert() (0) | 2020.04.23 |
MONGODB-소개, 데이터모델 (0) | 2020.04.22 |