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

Seri Waktu Agregat MongoDB

Anda dapat menggabungkan sebagai:

  • $match dokumen untuk tanggal tertentu.
  • Buat $group dan $project objek sebelum membuat kueri.
  • $group dengan $hour , kumpulkan semua dokumen per jam per menit dalam larik. Simpan menit di suatu tempat di dalam dokumen.
  • $project variabel dokumen sebagai $setUnion dari semua dokumen per jam.
  • $unwind dokumen.
  • $sort dengan orders
  • $limit 10 teratas dokumen yang kami butuhkan.

Kode:

var inputDate = new ISODate("2015-01-09T13:00:00Z");
var group = {};
var set = [];
for(var i=0;i<=60;i++){
    group[i] = {$push:{"doc":"$vals."+i,
                       "hour":"$_id.hour",
                       "min":{$literal:i}}};
    set.push("$"+i);
}
group["_id"] = {$hour:"$hour"};
var project = {"docs":{$setUnion:set}}

db.t.aggregate([
{$match:{"hour":{$lte:inputDate,$gte:inputDate}}},
{$group:group},
{$project:project},
{$unwind:"$docs"},
{$sort:{"docs.doc.orders":-1}},
{$limit:2},
{$project:{"_id":0,
           "hour":"$_id",
           "doc":"$docs.doc",
           "min":"$docs.min"}}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. cara mengganti beberapa kemunculan frasa mongodb

  2. Hasil aneh dari mongoid menggunakan mongodb pemerasan Debian

  3. menanyakan koleksi tanpa melewati skema di luwak

  4. SSL luwak, koneksi tidak diterima

  5. buka tutup koleksi MongoDB yang ditutup