MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menambah banyak tanggal dengan benar di mongoDB?

Mulai dari Mongo 4.2 , db.collection.update() dapat menerima pipa agregasi, akhirnya memungkinkan pembaruan bidang berdasarkan nilainya sendiri; sehingga menghindari pola find/foreach yang tidak efisien.

Juga, Anda melihat $inc operator untuk menambahkan hari, tetapi sekarang kita dapat menggunakan saluran agregasi sebagai pembaruan, $add operator dapat digunakan:

// { "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" }
  • Bagian pertama { date : { $exists : true } } adalah kueri pencocokan, memfilter dokumen mana yang akan diperbarui (dalam kasus kami semua dokumen memiliki date lapangan).

  • Bagian kedua [{ $set: { date: { $add: ["$date", 24*60*60000] } } }] adalah pipa agregasi pembaruan (perhatikan tanda kurung siku yang menandakan penggunaan pipa agregasi). $set adalah operator agregasi baru dan alias dari $addFields . Kemudian operator agregasi apa pun dapat digunakan dalam $set panggung; dalam kasus kami $add . sederhana antara tanggal yang ada dan representasi hari dalam milidetik.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $isoDayOfWeek

  2. Kondisi kueri MongoDb saat membandingkan 2 bidang

  3. MongoDB $toString

  4. Memperbarui Array Bersarang dengan MongoDB

  5. MongoDb dimatikan dengan Kode 100