Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El $inc operador incrementa el valor de un campo por una cantidad especificada. Si el campo no existe, $inc crea el campo y lo establece en el valor especificado. El operador acepta valores positivos y negativos para incrementar y disminuir respectivamente.
Syntax
La sintaxis del $objectToArray operador es la siguiente:
{
$inc: {
<field1>: <amount1>,
<field2>: <amount2>,
...
}
}
Parámetros
| Parámetro | Description |
|---|---|
field |
Nombre del campo que se va a incrementar. |
amount |
Valor de incremento. Debe ser un número (positivo para incremento, negativo para el decremento). |
Examples
Considere este documento de ejemplo de la colección de tiendas.
{
"_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
}
]
}
}
Ejemplo 1: Incremento del número de personal
Para aumentar el número de personal de tiempo completo en 3, use el operador de $inc en el campo de personal fullTime con un valor de 3.
db.stores.updateOne(
{ "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" },
{
$inc: {
"staff.totalStaff.fullTime": 3
}
}
)
Ejemplo 2: Disminuir y aumentar los valores
Para reducir el personal a tiempo parcial en 2 y aumentar las ventas totales en 5000, use el operador de $inc en ambos campos con valores de -2 y 5000 respectivamente.
db.stores.updateOne(
{ "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" },
{
$inc: {
"staff.totalStaff.partTime": -2,
"sales.totalSales": 5000
}
}
)
Ejemplo 3: Crear nuevos campos
Si no existe un campo, $inc lo crea con el valor especificado.
db.stores.updateOne(
{ "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" },
{
$inc: {
"staff.contractorCount": 5,
"sales.monthlyTarget": 200000
}
}
)
Ejemplo 4: Incremento de los valores del elemento de matriz
Actualice cifras de ventas específicas dentro de la matriz salesByCategory mediante operadores posicionales.
db.stores.updateOne(
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"sales.salesByCategory.categoryName": "Sound Bars"
},
{
$inc: {
"sales.salesByCategory.$.totalSales": 500
}
}
)
Después de estas operaciones, el documento se actualiza de la siguiente manera:
{
"_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
}
]
}
}