MongoDB ma $inc operator aktualizacji pola, który pozwala zwiększyć wartość o określoną kwotę.
Możesz używać wartości dodatnich i ujemnych (np. do zwiększania lub zmniejszania wartości).
Jeśli pole jeszcze nie istnieje, jest tworzone z określoną wartością.
Przykład
Załóżmy, że mamy kolekcję o nazwie dogs z następującym dokumentem:
{ "_id" : 1, "name" : "Wag", "weight" : 10 }
Tutaj weight pole zawiera wartość, którą można zwiększyć lub zmniejszyć.
Przyrost
Możemy użyć $inc operator w połączeniu z update() metoda na zwiększenie wagi tego psa.
Tak:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 5 } }
) Wyjście:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) To mówi nam, że jeden dokument został dopasowany i zmodyfikowany.
Sprawdźmy jeszcze raz kolekcję:
db.dogs.find() Wynik:
{ "_id" : 1, "name" : "Wag", "weight" : 15 } Widzimy, że waga psa wzrosła o 5.
Zmniejsz
Możesz zmniejszyć wartość, podając wartość ujemną do $inc operatora.
Tak:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: -5 } }
) Wyjście:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) Sprawdź kolekcję:
db.dogs.find() Wynik:
{ "_id" : 1, "name" : "Wag", "weight" : 10 } Widzimy, że waga została zmniejszona o 5.
Zwiększ pole, które nie istnieje
Kiedy zwiększasz pole, które nie istnieje w dokumencie, pole to jest dodawane i przypisywane jest mu określona wartość.
Przykład:
db.dogs.update(
{ _id: 1 },
{ $inc: { weight: 1, height: 30 } }
) Wyjście:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Zauważ, że zaktualizowaliśmy dwa pola; weight pole i height pole (które pierwotnie nie istniało).
Sprawdźmy ponownie dokument:
db.dogs.find() Wynik:
{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }
Widzimy, że weight pole zostało zwiększone o 1 i nową height dodano pole z określoną wartością 30 .