Skip to content

Instantly share code, notes, and snippets.

@ayosec
Created August 25, 2011 17:25
Show Gist options
  • Select an option

  • Save ayosec/1171214 to your computer and use it in GitHub Desktop.

Select an option

Save ayosec/1171214 to your computer and use it in GitHub Desktop.
MapReduce: count sites per country
db.sites.insert({"cities": [ { "country" : { "code" : "ES" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "US" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "US" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "ES" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "PT" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "BR" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "BR" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "CA" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "CA" } } ] });
db.sites.insert({"cities": [ { "country" : { "code" : "CA" } } ] });
db.sites.mapReduce(
function() { emit(this.cities[0].country.code, 1) },
function(key, values) {
var c = 0;
values.forEach(function(i) { c += i; });
return c;
},
{out: { inline: 1 } }
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment