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

Как се увеличава правилно много дати в mongoDB?

Започвайки от Mongo 4.2 , db.collection.update() може да приеме конвейер за агрегиране, като накрая позволява актуализиране на поле въз основа на собствената му стойност; като по този начин се избягват неефективните шаблони за намиране/пренасочване.

Освен това разглеждахте $inc оператор за добавяне на ден, но сега, когато можем да използваме конвейер за агрегиране като актуализация, $add може да се използва оператор:

// { "date" : ISODate("2020-04-05T07:14:17.802Z"), "x" : "y" }
db.collection.updateMany(
  { date : { $exists : true } },
  [{ $set: { date: { $add: ["$date", 24*60*60000] } } }]
)
// { "date" : ISODate("2020-04-06T07:14:17.802Z"), "x" : "y" }
  • Първата част { date : { $exists : true } } е заявката за съответствие, която филтрира кои документи да актуализира (в нашия случай всички документи с date поле).

  • Втората част [{ $set: { date: { $add: ["$date", 24*60*60000] } } }] е тръбопроводът за обновяване на агрегиране (обърнете внимание на квадратните скоби, означаващи използването на конвейер за агрегиране). $set е нов оператор за агрегиране и псевдоним на $addFields . Тогава всеки оператор за агрегиране може да се използва в рамките на $set сцена; в нашия случай просто $add Разстояние между съществуващата дата и представянето на ден в милисекунди.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Инсталация на MongoDB

  2. Как да премахнете един "документ" по "ID" с помощта на официалния C# драйвер за MongoDB?

  3. Групов резултат по 15 минути времеви интервал в MongoDb

  4. Оперативни фактори, които трябва да се вземат предвид по време на моделиране на данни на MongoDB

  5. Ръководство за разработчици за MongoDB Sharding