sql >> Databáze >  >> NoSQL >> MongoDB

Jak správně zvýšit počet dat v mongoDB?

Počínaje verzí Mongo 4.2 , db.collection.update() může přijmout agregační kanál, což konečně umožňuje aktualizaci pole na základě jeho vlastní hodnoty; čímž se vyhnete neefektivním vzorcům hledání/vyhledávání.

Také jste se dívali na $inc operátor přidat den, ale nyní, když můžeme jako aktualizaci použít agregační kanál, $add lze použít operátor:

// { "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" }
  • První část { date : { $exists : true } } je vyhledávací dotaz, který filtruje, které dokumenty se mají aktualizovat (v našem případě všechny dokumenty s date pole).

  • Druhá část [{ $set: { date: { $add: ["$date", 24*60*60000] } } }] je kanál agregace aktualizací (všimněte si hranatých závorek označujících použití kanálu agregace). $set je nový agregační operátor a alias $addFields . Potom lze v rámci $set použít libovolný agregační operátor etapa; v našem případě jednoduchý $add mezi existujícím datem a zobrazením dne v milisekundách.



  1. [Infographic] Srovnání Cassandry vs. MongoDB

  2. nasazení redis na heroku, který se nemůže připojit

  3. Nelze se připojit k Mongo Cloud mongodb Database v Golang na Ubuntu

  4. Vytvořte webovou stránku internetového obchodu s potravinami pomocí Angular, NodeJS, Express a MongoDB