MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak poprawnie zwiększyć liczbę dat w mongoDB?

Począwszy od Mongo 4.2 , db.collection.update() może zaakceptować potok agregacji, ostatecznie umożliwiając aktualizację pola na podstawie jego własnej wartości; unikając w ten sposób nieefektywnych wzorców wyszukiwania/foreach.

Patrzyłeś też na $inc operatora, aby dodać dzień, ale teraz, gdy możemy użyć potoku agregacji jako aktualizacji, $add można użyć operatora:

// { "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" }
  • Pierwsza część { date : { $exists : true } } to zapytanie dopasowujące, filtrujące dokumenty do aktualizacji (w naszym przypadku wszystkie dokumenty mające date pole).

  • Druga część [{ $set: { date: { $add: ["$date", 24*60*60000] } } }] to potok agregacji aktualizacji (zwróć uwagę na nawiasy kwadratowe oznaczające użycie potoku agregacji). $set to nowy operator agregacji i alias $addFields . Następnie można użyć dowolnego operatora agregacji w ramach $set scena; w naszym przypadku prosty $add między istniejącą datą a reprezentacją dnia w milisekundach.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Usuń MongoDBWiele()

  2. findOne poddokument w języku Mongoose

  3. Klucz kompozytowy MongoDB

  4. Narzędzia MongoDB od społeczności, które uzupełniają ClusterControl

  5. Policz w repozytorium Spring Data MongoDB