· 7 years ago · Mar 04, 2019, 12:00 PM
1/* Counts each domain url */
2m = function () {
3 emit(this.domain, 1 );
4}
5
6r = function (key, values) {
7 total = 0;
8 for (var i in values) {
9 total += Number(i);
10 }
11
12 return total;
13}
14
15/* Store of visits per domain statistics on NonFTP_Access_log_domain_visits collection */
16res = db.NonFTP_Access_log.mapReduce(m, r, { out: { replace : "NonFTP_Access_log_domain_visits" } } );
17db.NonFTP_Access_log_domain_visits.ensureIndex({ "value": 1});
18db.NonFTP_Access_log_domain_visits.find({}).sort({ "value":-1 }).limit(10).forEach(printjson);
19
20drop table if exists NonFTP_Access_log_domain_visits;
21create table NonFTP_Access_log_domain_visits (
22 `domain` varchar(255) NOT NULL,
23 `value` int unsigned not null,
24 PRIMARY KEY (`domain`),
25 KEY `value_index` (`value`)
26 ) ENGINE=MyISAM DEFAULT CHARSET=utf8
27 select domain, count(*) as value from NonFTP_Access_log group by domain;
28select * from NonFTP_Access_log_domain_visits order by value desc limit 10;
29
30db.NonFTP_Access_log.aggregate(
31 { $group: {
32 _id: "$domain",
33 visits: { $sum: 1 }
34 }},
35 { $sort: { visits: -1 } },
36 { $limit: 10 }
37 ).result.forEach(printjson);