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

Agregasi MongoDB pada rentang

Anda dapat menggunakan agregasi untuk mengelompokkan berdasarkan apa pun yang dapat dihitung dari dokumen sumber, selama Anda tahu persis apa yang ingin Anda lakukan.

Berdasarkan konten dokumen dan keluaran sampel Anda, saya menduga Anda menjumlahkan dengan interval dua hari. Inilah cara Anda menulis agregasi untuk menampilkan ini pada data sampel Anda:

var range1={$and:[{"$gte":["$date","2014-07-07"]},{$lte:["$date","2014-07-08"]}]}
var range2={$and:[{"$gte":["$date","2014-07-09"]},{$lte:["$date","2014-07-10"]}]}
db.range.aggregate(
    {$project:{
         dateRange:{$cond:{if:range1, then:"dateRange1",else:{$cond:{if:range2, then:"dateRange2", else:"NotInRange"}}}},
         value:1}
    }, 
    {$group:{_id:"$dateRange", sum:{$sum:"$value"}}}
)
{ "_id" : "dateRange2", "sum" : 45 }
{ "_id" : "dateRange1", "sum" : 49 }

Ganti tanggal Anda untuk string dalam range1 dan range2 dan secara opsional Anda dapat memfilter sebelum Anda mulai hanya beroperasi pada dokumen yang sudah berada dalam rentang penuh yang Anda gabungkan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Migrasi Dari Tokumx 1.5 Ke Server Percona Untuk mongodb 3.11

  2. Mencatat Kueri MongoDB dengan Spring Boot

  3. Bagaimana Anda menghapus model dari luwak?

  4. MongoDB, hapus objek dari array

  5. Menentukan pemilik catatan secara efisien dalam hierarki dengan MongoDB