Risposta aggiornata
Hacked insieme nella conchiglia mongo:
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')
};
}
A seconda degli aspetti che desideri monitorare, potresti prendere in considerazione l'aggiunta di più raccolte (ad esempio una raccolta per il monitoraggio incentrato sull'utente). Spero di esserti stato d'aiuto.
Vedi anche
Blogpost sui dati di Analytics