updateOne: 주어진 기준에 맞는 다수의 도큐먼트 중 첫번째 도큐먼트 하나만 업데이트
updateMany: 쿼리문과 일치하는 모든 도큐먼트를 업데이트
updateMany, inc db.zips.updateMany({"city" : "ALPINE"}, {"inc" : {"pop" :10}})
업데이트 할 도큐먼트 결정 MQL 연산자 inc 연산자는 업데이트 하려는 필드와 증가하는 값을 위와 같이 작성하여 다양한 필드의 값을 동시에 업데이트 할 수 있다.
명령어의 첫 번째 인자에는 어떤 도큐먼트를 업데이트할지 결정하는 조건이 들어갑니다.
두 번째 인자는 발생할 업데이트 내용을 특정합니다.
MQL(MongoDB Query Language) 업데이트 연산자인 $inc를 위와 같이 작성하면, 특정 필드의 값을 원하는 만큼 증가시킬 수 있습니다.
작업 성공 여부에 대한 응답:
matchedCount: 첫 번째 인자로 들어간 조건을 충족하는 도큐먼트의 수,
modifiedCount: 두 번째 인자로 들어간 업데이트 연산자 $inc로 인해 수정된 도큐먼트의 수를 의미한다.
matchedCount와 modifiedCount가 동일한 값으로 출력되었다. 실제로 도큐먼트의 pop 필드가 성공적으로 업데이트된 것을 확인할 수 있다.
updateOne의 사용법: updateMany와 사용법이 같다. 차이점은 업데이트하는 데이터의 수이다.
인구수가 줄었을 때 $set 연산자를 사용한다. $set 연산자를 사용하면 주어진 필드에 지정된 값을 업데이트합니다.
MongoDB는 주어진 필드 이름이 기존에 없는 경우, 해당 필드를 추가합니다.
배열로 이루어진 필드의 값을 업데이트하는 방법: push 연산자는 배열로 이루어진 필드의 값에 요소를 추가하기 위한 연산자이다.
db.grades.updateOne({"student_id" : 250, "class_id" : 339},
{"$push" : {"scores" : {"type" : "extra credit", "score" : 100}}} ) 연산자 서브도큐먼트를 삽입할 배열 타입의 값을 가지고 있는 필드 추가할 서브 도큐먼트