MongoDB update

YoungJoon Suh·2022년 4월 13일
0

updateOne: 주어진 기준에 맞는 다수의 도큐먼트 중 첫번째 도큐먼트 하나만 업데이트
updateMany: 쿼리문과 일치하는 모든 도큐먼트를 업데이트

updateMany, inc db.zips.updateMany({"city" : "ALPINE"}, {"inc" : {"pop" :10}})
업데이트 할 도큐먼트 결정 MQL 연산자 inc사용특정한필드의값을주어진만큼증가inc 사용 특정한 필드의 값을 주어진 만큼 증가inc 연산자는 업데이트 하려는 필드와 증가하는 값을 위와 같이 작성하여 다양한 필드의 값을 동시에 업데이트 할 수 있다.
명령어의 첫 번째 인자에는 어떤 도큐먼트를 업데이트할지 결정하는 조건이 들어갑니다.
두 번째 인자는 발생할 업데이트 내용을 특정합니다.
MQL(MongoDB Query Language) 업데이트 연산자인 $inc를 위와 같이 작성하면, 특정 필드의 값을 원하는 만큼 증가시킬 수 있습니다.
작업 성공 여부에 대한 응답:
matchedCount: 첫 번째 인자로 들어간 조건을 충족하는 도큐먼트의 수,
modifiedCount: 두 번째 인자로 들어간 업데이트 연산자 $inc로 인해 수정된 도큐먼트의 수를 의미한다.
matchedCount와 modifiedCount가 동일한 값으로 출력되었다. 실제로 도큐먼트의 pop 필드가 성공적으로 업데이트된 것을 확인할 수 있다.
updateOne의 사용법: updateMany와 사용법이 같다. 차이점은 업데이트하는 데이터의 수이다.
인구수가 줄었을 때 $set 연산자를 사용한다. $set 연산자를 사용하면 주어진 필드에 지정된 값을 업데이트합니다.
MongoDB는 주어진 필드 이름이 기존에 없는 경우, 해당 필드를 추가합니다.

배열로 이루어진 필드의 값을 업데이트하는 방법: pushpushpush 연산자는 배열로 이루어진 필드의 값에 요소를 추가하기 위한 연산자이다.

db.grades.updateOne({"student_id" : 250, "class_id" : 339},
{"$push" : {"scores" : {"type" : "extra credit", "score" : 100}}} ) 연산자 서브도큐먼트를 삽입할 배열 타입의 값을 가지고 있는 필드 추가할 서브 도큐먼트

profile
저는 서영준 입니다.

0개의 댓글