MongoDB má $inc operátor aktualizace pole, který vám umožňuje zvýšit hodnotu o určitou částku.
Můžete použít kladné a záporné hodnoty (tj. ke zvýšení nebo snížení hodnoty).
Pokud pole ještě neexistuje, je vytvořeno se zadanou hodnotou.
Příklad
Předpokládejme, že máme sbírku nazvanou dogs s následujícím dokumentem:
{ "_id" : 1, "name" : "Wag", "weight" : 10 }
Zde je weight pole obsahuje hodnotu, kterou lze zvýšit nebo snížit.
Přírůstek
Můžeme použít $inc operátor ve spojení s update() způsob, jak zvýšit hmotnost tohoto psa.
Takhle:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 5 } }
) Výstup:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) To nám říká, že jeden dokument byl spárován a upraven.
Podívejme se znovu na sbírku:
db.dogs.find() Výsledek:
{ "_id" : 1, "name" : "Wag", "weight" : 15 } Můžeme vidět, že váha psa se zvýšila o 5.
Snížit
Hodnotu můžete snížit zadáním záporné hodnoty do $inc operátor.
Takhle:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: -5 } }
) Výstup:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) Zkontrolujte sbírku:
db.dogs.find() Výsledek:
{ "_id" : 1, "name" : "Wag", "weight" : 10 } Vidíme, že váha byla nyní snížena o 5.
Zvýšit pole, které neexistuje
Když zvýšíte pole, které v dokumentu neexistuje, pole se přidá a přiřadí mu zadanou hodnotu.
Příklad:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 1, height: 30 } }
) Výstup:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Všimněte si, že jsme aktualizovali dvě pole; weight pole a height pole (které původně neexistovalo).
Podívejme se znovu na dokument:
db.dogs.find() Výsledek:
{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }
Vidíme, že weight pole bylo zvýšeno o 1 a novou height pole bylo přidáno se zadanou hodnotou 30 .