更新答案
在蒙戈外殼砍死在一起:
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')
};
}
取決於哪些方面你要跟蹤你可能會考慮增加更多的集合(例如,對於以用戶爲中心的跟蹤收集)。希望有所幫助。
也
Blogpost about Analytics Data
有趣,你會查找()語法的樣子,如果我想在過去的一天中顯示的每個小時的意見「你好」的計數? – Tom 2011-04-21 06:21:40
..那麼這個解決方案不會是完全理想的。但請繼續,我會發布更新。 – Matt 2011-04-21 07:07:22
與此同時,您可能想看看http://cookbook.mongodb.org/patterns/unique_items_map_reduce/ – Matt 2011-04-21 07:13:54