MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB $inc

MongoDB има $inc Оператор за актуализиране на полето, който ви позволява да увеличите стойност с определена сума.

Можете да използвате положителни и отрицателни стойности (т.е. за увеличаване или намаляване на стойността).

Ако полето вече не съществува, то се създава с посочената стойност.

Пример

Да предположим, че имаме колекция, наречена dogs със следния документ:

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

Тук weight полето съдържа стойност, която може да бъде увеличена или намалена.

Увеличение

Можем да използваме $inc оператор във връзка с update() метод за увеличаване на теглото на това куче.

Като това:

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

Изход:

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

Това ни казва, че един документ е бил съпоставен и променен.

Нека проверим колекцията отново:

db.dogs.find()

Резултат:

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

Виждаме, че теглото на кучето се е увеличило с 5.

Намаляване

Можете да намалите стойността, като предоставите отрицателна стойност на $inc оператор.

Като това:

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

Изход:

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

Проверете колекцията:

db.dogs.find()

Резултат:

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

Виждаме, че теглото вече е намалено с 5.

Увеличете поле, което не съществува

Когато увеличите поле, което не съществува в документа, полето се добавя и му се присвоява посочената стойност.

Пример:

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

Изход:

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

Забележете, че актуализирахме две полета; weight полето и height поле (което първоначално не е съществувало).

Нека проверим документа отново:

db.dogs.find()

Резултат:

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

Можем да видим, че weight полето е увеличено с 1 и нова height полето е добавено с посочената стойност 30 .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. запитване на колекция без предаване на схема в mongoose

  2. MongoDB сортиране()

  3. PyMongo upsert изхвърля upsert трябва да е екземпляр на грешка bool

  4. Парола за MongoDB с @ в нея

  5. Защо грешката mongod е мъртва, но подсистемата е заключена и недостатъчно свободно място за файлове на дневници в Linux?