Slide 9
Slide 9 text
Retrieving Data for a Real-Time Chart
Retrieve the number of hits to a specific resource (i.e. /index.html) with minute-level granularity
db.stats.daily.findOne(
... {'metadata': {'date':dt, 'site':'site-1', 'page':'/index.html'}},
... { 'minute': 1 })
Retrieve the number of hits to a specific resource with hour-level granularity
db.stats.daily.findOne(
... {'metadata': {'date':dt, 'site':'site-1', 'page':'/index.html'}},
... { 'hourly': 1 })
A few days of hourly data
db.stats.daily.find(
... {
... 'metadata.date': { '$gte': dt1, '$lte': dt2 },
... 'metadata.site': 'site-1',
... 'metadata.page': '/index.html'},
... { 'metadata.date': 1, 'hourly': 1 } },
... sort=[('metadata.date', 1)])
INDEXING
db.stats.daily.ensure_index([
... ('metadata.site', 1),
... ('metadata.page', 1),
... ('metadata.date', 1)])