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

MongoDB подходи за съхраняване на големи количества показатели / аналитични данни

Актуализиран отговор

Хакнати заедно в mongo shell:

use pagestats;

// a little helper function
var pagePerHour = function(pagename) {
    d = new Date();
    return {
        page : pagename,
        year: d.getUTCFullYear(),
        month: d.getUTCMonth(),
        day : d.getUTCDate(),
        hour: d.getUTCHours(),
    }
}

// a pageview happened
db.pagestats.update(
    pagePerHour('Hello'),
    { $inc : { views : 1 }},
    true ); //we want to upsert

// somebody tweeted our page twice!
db.pagestats.update(
    pagePerHour('Hello'),
    { $inc : { tweets : 2 }},
    true ); //we want to upsert

db.pagestats.find();
// { "_id" : ObjectId("4dafe88a02662f38b4a20193"),
//   "year" : 2011, "day" : 21, "hour" : 8, "month" : 3,
//   "page" : "Hello",
//   "tweets" : 2, "views" : 1 }

// 24 hour summary 'Hello' on 2011-4-21
for(i = 0; i < 24; i++) {
    //careful: days (1-31), month (0-11) and hours (0-23)
    stats = db.pagestats.findOne({ page: 'Hello', year: 2011, month: 3, day : 21, hour : i})
    if(stats) {
        print(i + ': ' + stats.views + ' views')
    } else {
        print(i + ': no hits')
    };
}

В зависимост от това кои аспекти искате да проследявате, може да помислите за добавяне на още колекции (напр. колекция за ориентирано към потребителя проследяване). Надявам се, че това помага.

Вижте също

Публикация в блог за данните от Google Анализ



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB – Как да върна документи с <field_value> като <field_key>?

  2. преобразуване на iso дата във времева марка в mongo заявка

  3. Как да автоматизирате и управлявате MongoDB с ClusterControl

  4. Mongoose Опит за отваряне на незатворена връзка

  5. MomentJS не преобразува датата правилно