MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Намерете последния документ за деня за последните 7 дни

Кристина Чодороу дава подробна рецепта за тази точна задача в нейната книга MongoDB:Окончателното ръководство :

Не съм запознат с Mongoose, но се опитах да адаптирам нейния пример към вашия случай по-долу. Забележете, че промених createdAt default свойство от стойност към функция и добави допълнително поле datestamp към вашата схема:

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. MongoDB $ifNull

  2. Създаване на монго изглед, който зависи от текущото време

  3. Поддържане на реда на http заявките в for цикъл в javascript

  4. Възможно ли е да въвеждате прехвърлени данни в тръбопровод за агрегиране на MongoDB?

  5. Извлечете стойностите от масива и го съхранете в csv файл с помощта на MongoDB