MongoDB ha un $inc
operatore di aggiornamento del campo che consente di incrementare un valore di un importo specifico.
Puoi utilizzare valori positivi e negativi (ad esempio per aumentare o diminuire il valore).
Se il campo non esiste già, viene creato con il valore specificato.
Esempio
Supponiamo di avere una collezione chiamata dogs
con il seguente documento:
{ "_id" : 1, "name" : "Wag", "weight" : 10 }
Qui, il weight
contiene un valore che può essere incrementato o decrementato.
Incremento
Possiamo usare il $inc
operatore insieme a update()
metodo per aumentare il peso di questo cane.
In questo modo:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 5 } }
)
Uscita:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Questo ci dice che un documento è stato abbinato e modificato.
Controlliamo di nuovo la collezione:
db.dogs.find()
Risultato:
{ "_id" : 1, "name" : "Wag", "weight" : 15 }
Possiamo vedere che il peso del cane è aumentato di 5.
Decremento
Puoi decrementare il valore fornendo un valore negativo a $inc
operatore.
In questo modo:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: -5 } }
)
Uscita:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Controlla la collezione:
db.dogs.find()
Risultato:
{ "_id" : 1, "name" : "Wag", "weight" : 10 }
Possiamo vedere che il peso è stato ora decrementato di 5.
Incrementa un campo che non esiste
Quando incrementi un campo che non esiste nel documento, il campo viene aggiunto e gli viene assegnato il valore specificato.
Esempio:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 1, height: 30 } }
)
Uscita:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Si noti che abbiamo aggiornato due campi; il weight
campo e l'height
campo (che originariamente non esisteva).
Controlliamo di nuovo il documento:
db.dogs.find()
Risultato:
{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }
Possiamo vedere che il weight
il campo è stato incrementato di 1
e una nuova height
il campo è stato aggiunto con il valore specificato di 30
.