MongoDB를 사용하는 경우 만약 웹페이에 새로운 유저가 방문시 방문자 카운트 필드의 값을 +1 하려고 합니다. 어떻게하면 될지 아래에서 알아봅니다.

! MongoDB에서 auto increment
MongoDB는 다른 RDBMS처럼 auto increment를 설정하는 것이 없습니다. 즉 자동으로 숫자를 1씩 더할 수 없기 때문에 아래와 같이 직접 쿼리문에 1을 더하여 업데이트하는 방법이 필요합니다. 아래에서 자세히 알아봅니다.



# MongoDB 특정 필드 값에 1 더하기


auto increment 대신 MongoDB에서 숫자 1을 더하는 방법으로 $inc 연산자를 사용할 수 있습니다. 이를 사용하면 간단하게 해당하는 필드의 값을 변경할 수 있죠.

$inc: { 필드명: 변경할 값의 크기 }


위와 같이 방법은 간단합니다. update()를 사용하여 해당하는 문서를 찾은 후 $inc 연산자를 사용하여 값을 올리면 되겠죠. 그럼 간단한 예제를 만들어보도록 하겠습니다.

아래 예제는 숫자타입의 필드 count에 1을 더하는 예제코드입니다. 찾을 문서의 조건은과 더할 값은 1입니다.

찾을 쿼리문 - {'site': 'webisfree'}
수행할 작업 - count 필드 +1 하기

이제 위와 같이 동작하도록 하기 위해 아래와 같은 쿼리문을 작성하였습니다.
collection.update(
  {'site': 'webisfree'},
  {'$inc': {'count': 1}
}, upsert=False)

이제 count 값이 아래와 같이 추가 변경되었겠죠.

기존 값 count : 0 -> 변경 후 값 count : 1

이처럼 숫자 값을 추가, 변경하는 경우 $inc 연산자를 사용하면 매우 편리합니다. 여기까지 방문자 카운트 1을 더하는 간단한 방법과 예제를 알아보았습니다.