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

Temukan dokumen terakhir hari ini selama 7 hari terakhir

Kristina Chodorow memberikan resep terperinci untuk tugas yang tepat ini dalam bukunya MongoDB:The Definitive Guide :

Saya tidak akrab dengan Mongoose, namun saya sudah mencoba menyesuaikan contohnya dengan kasus Anda di bawah ini. Catatan saya mengubah createdAt default properti dari nilai ke fungsi dan menambahkan bidang tambahan datestamp ke skema Anda:

var oneday = 24 * 60 * 60;

var schema = new Schema({
  aid: { type: Number }
, name: { type: String }
, score: { type: Number }

  // default: is a function and called every time; not a one-time value!
, createdAt: { type: Date, default: Date.now }

  // For grouping by day; documents created on same day should have same value
, datestamp: { type: Number
             , default: function () { return Math.floor(Date.now() / oneday); }
             }
});


schema.statics.getLastWeek = function(name, fn) {
    var oneweekago = Date.now() - (7 * oneday);

    ret = this.collection.group({
          // Group by this key. One document per unique datestamp is returned.
          key: "datestamp"
          // Seed document for each group in result array.
        , initial: { "createdAt": 0 }
          // Update seed document if more recent document found.
        , reduce: function(doc, prev) {
              if (doc.createdAt > prev.createdAt) {
                prev.createdAt = doc.createdAt;
                prev.score = doc.score;

                // Add other fields, if desired:
                prev.name = doc.name;
              }
          // Process only documents created within past seven days
        , condition: { "createdAt" : {"$gt": oneweekago} }
        }});

   return ret.retval;

   // Note ret, the result of group() has other useful fields like:
   // total "count" of documents,
   // number of unique "keys",
   // and "ok" is false if a problem occurred during group()

);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Temukan beberapa nilai dalam koleksi mongodb?

  2. Bagaimana cara Mengonversi mongodb ISODate ke string di mongoDB?

  3. Mengapa ini menunggu di luar fungsi async berfungsi?

  4. Masalah kinerja MongoDB:Koleksi Besar Tunggal vs Beberapa Koleksi Kecil

  5. Kueri agregasi Mongodb untuk mengurangi dan mengelompokkan nilai kumulatif