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

Bagaimana cara menghitung item tanggal yang berbeda dalam bidang cap waktu di Mongoose/NodeJS?

Yang Anda inginkan adalah penggunaan kerangka kerja agregasi dengan aggregate() perintah, setidaknya untuk menemukan satu tanggal seperti yang Anda minta:

SomeSchema.aggregate(
    [
        { "$match": {
            "date": { 
                "$gte": new Date("2014-05-08"), "$lt": new Date("2014-05-09")
            }
        }},
        { "$group": {
            "_id": "$some_item",
            "count": { "$sum": 1 }
        }}
    ],
    function(err,result) {
        // do something with result

    }
);

Jika Anda secara khusus mencari "jumlah" selama beberapa tanggal maka Anda dapat melakukan sesuatu seperti ini:

SomeSchema.aggregate(
    [
        { "$match": {
            "date": { 
                "$gte": new Date("2014-05-01"), "$lt": new Date("2014-06-01")
            }
        }},
        { "$group": {
            "_id": { 
                "year":  { "$year": "$date" },
                "month": { "$month": "$date" },
                "day":   { "$dayOfMonth": "$date" }
            }
            "count": { "$sum": 1 }
        }}
    ],
    function(err,result) {
        // do something with result

    }
);

Dan itu memberi Anda pengelompokan "per hari". Cari operator agregasi tanggal dalam dokumentasi jika Anda ingin melanjutkannya.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. C# mongodb driver 2.0 - Bagaimana cara melakukan upser dalam operasi massal?

  2. Menemukan Dokumen Tersemat oleh properti tertentu di Mongoose, Node.js, MongodDB

  3. Bagaimana cara mengecualikan dari dokumen hasil pencarian dengan bidang yang tidak ada dalam kueri?

  4. MongoDB, hapus objek dari array

  5. Mongo massal menemukan dan memperbarui bidang dokumen yang cocok dalam satu permintaan?