sql >> Database >  >> NoSQL >> MongoDB

MongoDB $inc

MongoDB heeft een $inc veldupdate-operator waarmee u een waarde met een bepaald bedrag kunt verhogen.

U kunt positieve en negatieve waarden gebruiken (d.w.z. om de waarde te verhogen of te verlagen).

Als het veld nog niet bestaat, wordt het gemaakt met de opgegeven waarde.

Voorbeeld

Stel dat we een verzameling hebben met de naam dogs met het volgende document:

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

Hier, het weight veld bevat een waarde die kan worden verhoogd of verlaagd.

Verhogen

We kunnen de $inc . gebruiken operator in combinatie met de update() methode om het gewicht van deze hond te verhogen.

Zoals dit:

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

Uitgang:

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

Dit vertelt ons dat één document is gematcht en gewijzigd.

Laten we de collectie nog eens bekijken:

db.dogs.find()

Resultaat:

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

We kunnen zien dat het gewicht van de hond met 5 is toegenomen.

Verlagen

U kunt de waarde verlagen door een negatieve waarde te geven aan de $inc telefoniste.

Zoals dit:

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

Uitgang:

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

Bekijk de collectie:

db.dogs.find()

Resultaat:

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

We kunnen zien dat het gewicht nu met 5 is verlaagd.

Een veld verhogen dat niet bestaat

Wanneer u een veld verhoogt dat niet in het document bestaat, wordt het veld toegevoegd en krijgt het de opgegeven waarde toegewezen.

Voorbeeld:

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

Uitgang:

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

Merk op dat we twee velden hebben bijgewerkt; het weight veld en de height veld (dat oorspronkelijk niet bestond).

Laten we het document nog eens controleren:

db.dogs.find()

Resultaat:

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

We kunnen zien dat het weight veld is verhoogd met 1 , en een nieuwe height veld is toegevoegd met de opgegeven waarde van 30 .


  1. mongodb.conf bind_ip =127.0.0.1 werkt niet maar 0.0.0.0 werkt

  2. Meteoor zonder mongo

  3. Aangepaste object-ID maken in MongoDB

  4. Voeg alle bestaande velden toe en voeg nieuwe velden toe aan het document