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

Grup agregasi MongoDb berdasarkan Tanggal

db.foos.aggregate(
    [   
        {   $project : { day : {$substr: ["$TimeStamp", 0, 10] }}},        
        {   $group   : { _id : "$day",  number : { $sum : 1 }}},
        {   $sort    : { _id : 1 }}        
    ]
)

Pengelompokan menurut tanggal dapat dilakukan dalam dua langkah dalam kerangka agregasi, langkah ketiga tambahan diperlukan untuk menyortir hasil, jika pengurutan diinginkan:

  1. $project dalam kombinasi dengan $substr mengambil 10 karakter pertama (YYYY:MM:DD) dari objek ISODate dari setiap dokumen (hasilnya adalah kumpulan dokumen dengan bidang "_id" dan "hari");
  2. $group kelompok menurut hari, menambahkan (menjumlahkan) nomor 1 untuk setiap dokumen yang cocok;
  3. $sort menaik dengan "_id", yang merupakan hari dari langkah agregasi sebelumnya - ini opsional jika diinginkan hasil yang diurutkan.

Solusi ini tidak dapat memanfaatkan indeks seperti db.twitter.ensureIndex( { TimeStamp: 1 } ) , karena mengubah objek ISODate menjadi objek string dengan cepat. Untuk koleksi besar (jutaan dokumen) ini bisa menjadi hambatan kinerja dan pendekatan yang lebih canggih harus digunakan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menyinkronkan data dari mongoDB ke elasticsearch menggunakan Logstash

  2. Menemukan perbedaan dari koleksi di mongodb

  3. MongoDB Tampilkan item anak-anak dalam hubungan Satu ke Banyak

  4. Bagaimana Mencegah Rollback di MongoDB

  5. pesan kesalahan sintaks mongoexport