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을 더하는 간단한 방법과 예제를 알아보았습니다.