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

Mongoose:Bagaimana cara mendapatkan statistik data unggahan 7 hari terakhir dari DB?

Kueri yang Anda gambarkan mengelompokkan serangkaian dokumen menurut hari, ketika dokumen tersebut berisi tanggal waktu UTC.

MongoDB secara internal menyimpan tanggal/waktu sebagai jumlah milidetik sejak 1 Jan 1970, jadi langkah pertama perlu menghitung awal hari untuk setiap dokumen, kemudian mengelompokkan berdasarkan nilai awal hari tersebut.

Jika Anda menggunakan MongoDB 5.0, Anda dapat menggunakan $dateTrunc operator:

{$dateTrunc:{date:"$createdAt",unit:"day",timezone:"America/New_York"}}

Untuk versi yang lebih lama, Anda dapat menghitung objek tanggal yang mewakili awal hari atau membuat string yang hanya berisi tanggal.

Untuk opsi string:

{$concat: [
   {$toString:{$year:{ date:"$createdAt", timezone:"America/New_York" }}},
   "-",
   {$toString:{$month:{ date:"$createdAt", timezone:"America/New_York" }}},
   "-",
   {$toString:{$dayOfMonth:{ date:"$createdAt", timezone:"America/New_York" }}},
]}

Jadi secara keseluruhan alur agregasi adalah:

  • $match untuk memilih dokumen dalam jangka waktu yang diinginkan
  • $project untuk menghitung awal hari untuk setiap dokumen
  • $group pada awal hari, menghitung jumlah kemunculan
  • tahapan selanjutnya untuk mengkonversi dokumen ke format yang diinginkan


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tingkatkan bidang kueri yang ada di MongoDB

  2. Cara menggunakan Meteor Upser

  3. Bagaimana cara menghitung jarak rute antara banyak titik GeoJSON di MongoDB?

  4. Temukan semua dokumen di mana bidang tidak ada, ditambah jika bidang ada, terapkan ketentuan

  5. cara mengelola bidang _id saat menggunakan POCO dengan driver mongodb c#