MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tìm tài liệu cuối cùng trong ngày trong 7 ngày qua

Kristina Chodorow cung cấp công thức chi tiết cho nhiệm vụ chính xác này trong cuốn sách MongoDB:Hướng dẫn Cuối cùng của cô ấy :

Tôi không quen thuộc với Mongoose, tuy nhiên tôi đã cố gắng điều chỉnh ví dụ của cô ấy cho trường hợp của bạn dưới đây. Lưu ý rằng tôi đã thay đổi createdAt default thuộc tính từ một giá trị thành một hàm và thêm một trường bổ sung datestamp vào giản đồ của bạn:

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. Tổng hợp nhiều mảng thành một mảng lớn với MongoDB

  2. Lấy dữ liệu từ mongodb bằng trình điều khiển C #

  3. cách xử lý lỗi ngắt kết nối cho MongoDB

  4. Spring Data MongoDB:khung tổng hợp - sắp xếp với thuộc tính lồng nhau ném tham chiếu không hợp lệ

  5. Mongoid:tìm qua Mảng id