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

MongoDB $mul

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

Ако полето все още не съществува, то се създава и стойността му се задава на нула (0 ) използвайки същия числов тип като множителя.

Пример

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

{ "_id" : 1, "bar" : 10 } 

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

Като това:

db.foo.update(
  { _id: 1 },
  { $mul: { bar: 2 } }
)

Изход:

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

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

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

db.foo.find()

Резултат:

{ "_id" : 1, "bar" : 20 } 

Виждаме, че сумата се е удвоила до 20.

Умножете поле, което не съществува

Когато използвате $mul в поле, което не съществува в документа, полето се добавя и се задава на нула (0 ) използвайки същия числов тип като множителя.

Пример:

db.foo.update(
  { _id: 1 },
  { $mul: { bar: 3, extra: 2 } }
)

Изход:

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

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

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

db.foo.find()

Резултат:

{ "_id" : 1, "bar" : 60, "extra" : 0 } 

Можем да видим, че bar полето е умножено по 3 и нов extra полето е добавено и зададено на 0 .

Смесени типове

Умножаването със стойности на смесени числови типове (32-битово цяло число, 64-битово цяло число, float) може да доведе до преобразуване на числов тип.

Вижте документацията на MongoDB за обяснение.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Битката на базите данни NoSQL - Сравняване на MongoDB и CouchDB

  2. MongoDB Aggregation:Как да получите общия брой записи?

  3. Как мога да преименувам поле за всички документи в MongoDB?

  4. Какво е MongoDB и как работи?

  5. Как да получа достъп до MongoDB на Meteor от друг клиент, докато Meteor работи?