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

Node.js + Mongoose.js Bagaimana cara mendapatkan jumlah pesanan yang ditempatkan dalam sebulan atau seminggu?

Jika Anda hanya ingin total pesanan dalam jangka waktu tertentu maka Anda bisa menggunakan kueri rentang pada tanggal Anda menggunakan $gte dan $lt operator gaya:

var query = Model.find({ 
    "createdDate": { 
        "$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
    }
}).count()

query.exec(function(err, count) {

Dan itu hanya akan mengembalikan hitungan jika dokumen ditemukan dalam kisaran itu.

Jika Anda ingin menjumlahkan nilai dari dalam dokumen Anda, atau bahkan mengambil sesuatu seperti "total harian" dari dalam rentang tanggal tersebut, Anda dapat menggunakan kerangka kerja agregasi untuk melakukan ini:

Model.aggregate([
    { "$match": {
        "$gte": new Date("2014-05-21"), "$lte": new Date("2014-05-29")
    }},
    { "$group": {
        "_id": { "$dayOfYear": "$createdDate" }
        "totalValue": { "$sum": "$orderTotal" }
    }}
],
function(err, result) {

Itu tidak hanya menggunakan $sum operator untuk menambahkan nilai untuk bidang "orderTotal" kami, tetapi juga menggunakan agregasi tanggal operator untuk mengelompokkan semua nilai sebagai setiap hari dalam rentang yang diberikan.

Jika kasus terakhir yang Anda inginkan, Anda dapat menggunakan berbagai operator di sana untuk memecah berbagai periode tanggal yang ingin Anda masukkan ke dalam hasil Anda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. OpenShift Mengakses Pod Mongodb dari Pod lain

  2. Bagaimana cara menyimpan array input ke skema anak dalam skema luwak bersarang?

  3. Urutkan array dan tambahkan bidang peringkat di MongoDB

  4. Bagaimana kami bisa memberikan kueri untuk dokumen yang disematkan melalui driver java?

  5. Spring Data MongoDB - Anotasi @CreatedDate tidak berfungsi saat menggunakan dengan bidang Id khusus