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 .