04. MongoDB Update Operators Part 1. - $inc

이번 포스팅부터 몇차례에 걸쳐 MongoDB Update Operators에 대하여 알아보도록 하겠습니다.

MongoDB Update Operators에 대하여 보다 자세한 내용은 MongoDB의 공식 웹사이트의 Update Operators 페이지에서 확인하실 수 있습니다.

DB 작업을 하다보면, 특정 도큐먼트의 일부분만 변경해야 할 상황에 처할 수 있습니다.

Update Operators를 이용하여 도큐먼트의 변경, 추가, 삭제를 할 수 있으며, 임베디드 도큐먼트 및 어레이(array)에 대해서는 핸들링 할 수 있습니다.

다음 상황을 가정해 보겠습니다: 여러분이 세 개의 웹페이지를 관리해야 하고 있으며, 방문자가 방문 시 DB의 페이지 뷰 관련 내용을 1씩 증가시키는 작업을 해야한다고 가정합니다.

우선 다음과 같이 데이터를 준비합니다:

// user DB "foobar"
use foobar

// define webpage1
var page1 = {"url" : "www.gchoi.net", "pageviews" : 100}
// define webpage2
var page2 = {"url" : "www.google.com", "pageviews" : 1000}
// define webpage3
var page3 = {"url" : "www.apple.com", "pageviews" : 500}

// insert items into DB
db.analytics.insert(page1)
db.analytics.insert(page2)
db.analytics.insert(page3)
db.analytics.find()

"www.gchoi.net" URL의 페이지 뷰를 1씩 증가시킵니다:

// increase pageviews of url "www.gchoi.net" by 1
db.analytics.update({"url" : "www.gchoi.net"}, {"$inc" : {"pageviews" : 1}})
db.analytics.findOne({"url" : "www.gchoi.net"})