sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB $inc

MongoDB har en $inc fältuppdateringsoperator som låter dig öka ett värde med ett specifikt belopp.

Du kan använda positiva och negativa värden (dvs. för att öka eller minska värdet).

Om fältet inte redan finns skapas det med det angivna värdet.

Exempel

Anta att vi har en samling som heter dogs med följande dokument:

{ "_id" : 1, "name" : "Wag", "weight" : 10 }

Här, weight fältet innehåller ett värde som kan ökas eller minskas.

Öka

Vi kan använda $inc operatorn i kombination med update() metod för att öka hundens vikt.

Så här:

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: 5 } }
)

Utdata:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Detta talar om för oss att ett dokument matchades och modifierades.

Låt oss kolla in samlingen igen:

db.dogs.find()

Resultat:

{ "_id" : 1, "name" : "Wag", "weight" : 15 }

Vi kan se att hundens vikt har ökat med 5.

Minska

Du kan minska värdet genom att ange ett negativt värde till $inc operatör.

Så här:

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: -5 } }
)

Utdata:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Kontrollera samlingen:

db.dogs.find()

Resultat:

{ "_id" : 1, "name" : "Wag", "weight" : 10 }

Vi kan se att vikten nu har minskat med 5.

Öka ett fält som inte finns

När du ökar ett fält som inte finns i dokumentet läggs fältet till och tilldelas det angivna värdet.

Exempel:

db.dogs.update(
  { _id: 1 },
  { $inc: { weight: 1, height: 30 } }
)

Utdata:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Observera att vi uppdaterade två fält; weight fältet och height fält (som inte fanns från början).

Låt oss kontrollera dokumentet igen:

db.dogs.find()

Resultat:

{ "_id" : 1, "name" : "Wag", "weight" : 11, "height" : 30 }

Vi kan se att weight fältet har ökats med 1 , och en ny height fältet har lagts till med det angivna värdet 30 .


  1. Hur man optimerar prestanda för MongoDB

  2. MongoDB-skärvor och obalanserade aggregationsbelastningar

  3. MongoDB® med Hadoop och relaterade Big Data-teknologier

  4. MongoDB findOneAndUpdate()