Analytics mongdb queries
This commit is contained in:
parent
30c1b7b31a
commit
604bc48506
4 changed files with 168 additions and 0 deletions
85
scripts/analytics/mongodb/queries/SignupsPerDay.js
Normal file
85
scripts/analytics/mongodb/queries/SignupsPerDay.js
Normal file
|
@ -0,0 +1,85 @@
|
|||
// Print out signup conversions per day
|
||||
|
||||
var match={
|
||||
"$match" : {
|
||||
$or: [ {"event" : 'Started Signup'}, {"event" : 'Finished Signup'}]
|
||||
}
|
||||
};
|
||||
|
||||
proj1={"$project" : {
|
||||
"_id" : 0,
|
||||
"created" : 1,
|
||||
"event" : 1,
|
||||
"h" : {
|
||||
"$hour" : "$created"
|
||||
},
|
||||
"m" : {
|
||||
"$minute" : "$created"
|
||||
},
|
||||
"s" : {
|
||||
"$second" : "$created"
|
||||
},
|
||||
"ml" : {
|
||||
"$millisecond" : "$created"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var proj2={"$project" : {
|
||||
"_id" : 0,
|
||||
"event" : 1,
|
||||
"created" : {
|
||||
"$subtract" : [
|
||||
"$created",
|
||||
{
|
||||
"$add" : [
|
||||
"$ml",
|
||||
{
|
||||
"$multiply" : [
|
||||
"$s",
|
||||
1000
|
||||
]
|
||||
},
|
||||
{
|
||||
"$multiply" : [
|
||||
"$m",
|
||||
60,
|
||||
1000
|
||||
]
|
||||
},
|
||||
{
|
||||
"$multiply" : [
|
||||
"$h",
|
||||
60,
|
||||
60,
|
||||
1000
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
var group={"$group" : {
|
||||
"_id" : {
|
||||
"m" : "$event",
|
||||
"d" : "$created"
|
||||
},
|
||||
"count" : {
|
||||
"$sum" : 1
|
||||
}
|
||||
}
|
||||
};
|
||||
var conversionsPerDay = {};
|
||||
var sort = {$sort: { "_id.d" : -1}};
|
||||
db['analytics.log.events'].aggregate(match, proj1, proj2, group, sort).result.forEach( function (myDoc) {
|
||||
// print({day: myDoc._id.d, amount: myDoc._id.m, count: myDoc.count})
|
||||
if (!conversionsPerDay[myDoc._id.d])
|
||||
conversionsPerDay[myDoc._id.d] = {}
|
||||
conversionsPerDay[myDoc._id.d][myDoc._id.m] = myDoc.count;
|
||||
})
|
||||
for (key in conversionsPerDay) {
|
||||
print(key, conversionsPerDay[key]['Started Signup'], conversionsPerDay[key]['Finished Signup'], conversionsPerDay[key]['Finished Signup'] / conversionsPerDay[key]['Started Signup']);
|
||||
// print("Signup Conversion:", (finished / started * 100), "%");
|
||||
}
|
Reference in a new issue