$inc 연산자는 필드 값을 지정된 양만큼 증분합니다. 필드가 없 $inc 으면 필드를 만들고 지정된 값으로 설정합니다. 연산자는 각각 증가 및 감소에 대해 양수 및 음수 값을 허용합니다.
문법
연산자의 $objectToArray 구문은 다음과 같습니다.
{
$inc: {
<field1>: <amount1>,
<field2>: <amount2>,
...
}
}
매개 변수
| 매개 변수 | Description |
|---|---|
field |
증분할 필드의 이름입니다. |
amount |
증분 값입니다. 숫자여야 합니다(증분의 경우 양수, 감소의 경우 음수). |
예시
스토어 컬렉션에서 이 샘플 문서를 고려합니다.
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
"staff": {
"totalStaff": {
"fullTime": 19,
"partTime": 20
}
},
"sales": {
"totalSales": 151864,
"salesByCategory": [
{
"categoryName": "Sound Bars",
"totalSales": 2120
},
{
"categoryName": "Home Theater Projectors",
"totalSales": 45004
}
]
}
}
예제 1: 직원 수 증가
정규직 직원 수를 3으로 늘리려면 fullTime 교직원 필드에서 값이 3인 $inc 연산자를 사용합니다.
db.stores.updateOne(
{ "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" },
{
$inc: {
"staff.totalStaff.fullTime": 3
}
}
)
예제 2: 값 감소 및 증가
파트타임 직원을 2씩 줄이고 총 매출을 5,000씩 늘리려면 두 필드의 $inc 연산자를 각각 -2 및 5000 값으로 사용합니다.
db.stores.updateOne(
{ "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" },
{
$inc: {
"staff.totalStaff.partTime": -2,
"sales.totalSales": 5000
}
}
)
예제 3: 새 필드 만들기
필드가 없 $inc 으면 지정된 값으로 필드를 만듭니다.
db.stores.updateOne(
{ "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" },
{
$inc: {
"staff.contractorCount": 5,
"sales.monthlyTarget": 200000
}
}
)
예제 4: 배열 요소 값 증가
위치 연산자를 사용하여 salesByCategory 배열 내의 특정 판매 수치를 업데이트합니다.
db.stores.updateOne(
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"sales.salesByCategory.categoryName": "Sound Bars"
},
{
$inc: {
"sales.salesByCategory.$.totalSales": 500
}
}
)
이러한 작업 후에 문서는 다음과 같이 업데이트됩니다.
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
"staff": {
"totalStaff": {
"fullTime": 22,
"partTime": 18
},
"contractorCount": 5
},
"sales": {
"totalSales": 156864,
"monthlyTarget": 200000,
"salesByCategory": [
{
"categoryName": "Sound Bars",
"totalSales": 2620
},
{
"categoryName": "Home Theater Projectors",
"totalSales": 45004
}
]
}
}