-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMapReduce-vs-Aggregation-Demo.js
More file actions
39 lines (37 loc) · 1.03 KB
/
Copy pathMapReduce-vs-Aggregation-Demo.js
File metadata and controls
39 lines (37 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
db = db.getSiblingDB("mrvagg");
// Load up some sample data
// users and clicks
// For the past 1 month, each day generate X 'users'
// and Y clicks for Z urls
//
// return an ISODate() for daysBack from today
var dateByBack = function(daysBack) {
var d = new Date();
d.setDate( d.getDate() - daysBack);
return d;
}
var randomUrl = function() {
return Math.floor(Math.random()*10000000000000000).toString(16);
}
var loadDemoData = function(numberUsers) {
if ( typeof numberUsers === "undefined" ) {
numberUsers = 100;
}
var daysBack = 30;
for (var i=0; i<daysBack; i++) {
var date = dateByBack(i);
var docs = [];
for (var u=0; u<numberUsers; u++) {
var user_id = "user_"+u;
var clicksThisUserThisDay = Math.floor(Math.random()*100);
for (var c=0; c<clicksThisUserThisDay; c++) {
var clickDoc = {
"user_id" : user_id,
"date" : date,
"url" : randomUrl() };
docs.push(clickDoc);
}
}
db.views.insert( docs );
}
}