<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://nosqlzoo.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=40297158</id>
	<title>NoSQLZoo - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://nosqlzoo.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=40297158"/>
	<link rel="alternate" type="text/html" href="https://nosqlzoo.net/wiki/Special:Contributions/40297158"/>
	<updated>2026-06-10T04:33:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=935</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=935"/>
		<updated>2017-05-10T15:39:04Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){//&amp;amp;&amp;amp; this.allegiance != &amp;quot;Independent&amp;quot; &amp;amp;&amp;amp; this.allegiance != &amp;quot;Anarchy&amp;quot;) {&lt;br /&gt;
emit(this.allegiance, 1);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){//&amp;amp;&amp;amp; this.allegiance != &amp;quot;Independent&amp;quot; &amp;amp;&amp;amp; this.allegiance != &amp;quot;Anarchy&amp;quot;) {&lt;br /&gt;
emit(this.allegiance, this.population);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Special thanks to Harry T (40297170) &amp;amp; Callum M (40297158) For the answers--&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=934</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=934"/>
		<updated>2017-05-10T15:30:28Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){//&amp;amp;&amp;amp; this.allegiance != &amp;quot;Independent&amp;quot; &amp;amp;&amp;amp; this.allegiance != &amp;quot;Anarchy&amp;quot;) {&lt;br /&gt;
emit(this.allegiance, 1);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){//&amp;amp;&amp;amp; this.allegiance != &amp;quot;Independent&amp;quot; &amp;amp;&amp;amp; this.allegiance != &amp;quot;Anarchy&amp;quot;) {&lt;br /&gt;
emit(this.allegiance, this.population);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=933</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=933"/>
		<updated>2017-05-10T15:29:58Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){//&amp;amp;&amp;amp; this.allegiance != &amp;quot;Independent&amp;quot; &amp;amp;&amp;amp; this.allegiance != &amp;quot;Anarchy&amp;quot;) {&lt;br /&gt;
emit(this.allegiance, 1);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){&lt;br /&gt;
emit(this.allegiance, this.population);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=932</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=932"/>
		<updated>2017-05-10T15:26:11Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.systems.mapReduce(&lt;br /&gt;
  function(){&lt;br /&gt;
if (this.allegiance != null ){//&amp;amp;&amp;amp; this.allegiance != &amp;quot;Independent&amp;quot; &amp;amp;&amp;amp; this.allegiance != &amp;quot;Anarchy&amp;quot;) {&lt;br /&gt;
emit(this.allegiance, 1);}},&lt;br /&gt;
  function(k,v){return Array.sum(v);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]}}, map=Code(&amp;quot;function(){emit(this.allegiance,this.population)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=931</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=931"/>
		<updated>2017-05-10T15:14:27Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( query={&amp;quot;allegiance&amp;quot;: {&amp;quot;$ne&amp;quot;:None}}, map=Code(&amp;quot;function(){emit(this.allegiance, 1)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]}}, map=Code(&amp;quot;function(){emit(this.allegiance,this.population)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=930</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=930"/>
		<updated>2017-05-10T15:13:33Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( query={&amp;quot;allegiance&amp;quot;: {&amp;quot;$ne&amp;quot;:None}}, map=Code(&amp;quot;function(){emit(this.allegiance, 1)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]}}, map=Code(&amp;quot;function(){emit(this.allegiance,this.population)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=929</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=929"/>
		<updated>2017-05-10T15:09:37Z</updated>

		<summary type="html">&lt;p&gt;40297158: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introducing the elite database **WORK IN PROGRESS==&lt;br /&gt;
These questions will introduce the &amp;quot;elite&amp;quot; database, which contains data about the video game [https://www.elitedangerous.com/ Elite Dangerous]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;from bson.code import Code&amp;lt;/code&amp;gt; has been added to the setup so that you no longer need to include it in your answer.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There are two collections, &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt;. Inside &amp;lt;code&amp;gt;systems&amp;lt;/code&amp;gt; there is are nested documents called &amp;lt;code&amp;gt;stations&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A &amp;lt;b&amp;gt;system&amp;lt;/b&amp;gt; has many &amp;lt;b&amp;gt;stations&amp;lt;/b&amp;gt;, and a &amp;lt;b&amp;gt;station&amp;lt;/b&amp;gt; has many trade &amp;lt;code&amp;gt;listings&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Keys used in this database.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    commodities: &lt;br /&gt;
        _id, average_price, category, name&lt;br /&gt;
    systems: &lt;br /&gt;
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z&lt;br /&gt;
&lt;br /&gt;
    systems.stations: &lt;br /&gt;
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,&lt;br /&gt;
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at&lt;br /&gt;
&lt;br /&gt;
    systems.stations.listings: &lt;br /&gt;
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Read more about the structure here: [[Elite Document Structure]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot; data-switches=&#039;elite&#039;&amp;gt;The &amp;lt;code&amp;gt;commodities&amp;lt;/code&amp;gt; collection contains the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;average_price&amp;lt;/code&amp;gt; of each commodity.&amp;lt;br/&amp;gt;&lt;br /&gt;
There are 99 unique commodities and 15 categories.&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Find the average price of each category, round to the nearest whole number&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
db.commodities.findOne()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
db.commodities.mapReduce(&lt;br /&gt;
  function(){emit(this.category,this.average_price);},&lt;br /&gt;
  function(k,v){return Math.round(Array.sum(v)/v.length);},&lt;br /&gt;
  {out:{inline:1}}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;Each system has an &amp;lt;code&amp;gt;allegiance&amp;lt;/code&amp;gt;. There are three main factions: &amp;lt;b&amp;gt;The Federation&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;The Empire&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;The Alliance&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Non-populated systems without stations do not have an allegiance, and should be ignored.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the amount of systems following each type of allegiance.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( query={&amp;quot;allegiance&amp;quot;: {&amp;quot;$ne&amp;quot;:None}}, map=Code(&amp;quot;function(){emit(this.allegiance, 1)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;What are the populations of the three main factions?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Three main factions&amp;quot;&amp;gt;[&amp;quot;Alliance&amp;quot;,&amp;quot;Federation&amp;quot;,&amp;quot;Empire&amp;quot;]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]}}, map=Code(&amp;quot;function(){emit(this.allegiance,this.population)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;values.forEach(function(value){total += value;});return total;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} );pp.pprint(temp[&#039;results&#039;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Harder Questions==&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;How much Hydrogen Fuel is owned by stations in systems that are allied with the three main factions? Limit your query to the first 5000 stations.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;hint&amp;quot;&amp;gt;&lt;br /&gt;
The amount of stations &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; the amount of listings aren&#039;t fixed, you&#039;ll need to &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; to ensure that they exist and find a way of iterating through them in your &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt; stage.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce( limit=5000, query={&amp;quot;allegiance&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;Alliance&amp;quot;,&amp;quot;Empire&amp;quot;,&amp;quot;Federation&amp;quot;]},&amp;quot;stations.listings.commodity&amp;quot;:&amp;quot;Hydrogen Fuel&amp;quot;,&amp;quot;stations.listings.supply&amp;quot;:{&amp;quot;$exists&amp;quot;:1}}, map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ for(var i in this.stations) for(var j in this.stations[i].listings) emit(this.allegiance,this.stations[i].listings[j].supply) }&amp;quot;&amp;quot;&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var t = 0;vs.forEach(function(v){t += v});return t;} &amp;quot;&amp;quot;&amp;quot;), out={&amp;quot;inline&amp;quot;:1} ); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;A &amp;lt;code&amp;gt;power_control_faction&amp;lt;/code&amp;gt; or &amp;lt;b&amp;gt;Power&amp;lt;/b&amp;gt; is an individual or organisation who is in control of a system.&amp;lt;br/&amp;gt;&lt;br /&gt;
These powers have allegiances, but the systems they control do not nescessarily have the same allegiance as they do.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt; At the time of writing &amp;lt;b&amp;gt;Zemina Torval&amp;lt;/b&amp;gt; is allied with the &amp;lt;b&amp;gt;Empire&amp;lt;/b&amp;gt; and controls &amp;lt;b&amp;gt;47&amp;lt;/b&amp;gt; systems.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    {   &#039;_id&#039;: &#039;Zemina Torval&#039;,&lt;br /&gt;
        &#039;value&#039;: {   &#039;alliance&#039;: 0.0,&lt;br /&gt;
                     &#039;anarchy&#039;: 0.0,&lt;br /&gt;
                     &#039;empire&#039;: 39.0,&lt;br /&gt;
                     &#039;federation&#039;: 3.0,&lt;br /&gt;
                     &#039;independent&#039;: 5.0}}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Show the allegiance of each of the power&#039;s systems&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;mongo&amp;quot;&amp;gt;Our dataset doesn&#039;t contain the allegiance of a power:&lt;br /&gt;
&amp;lt;p class=&amp;quot;strong&amp;quot;&amp;gt;Using the result from the previous question, guess the power&#039;s allegiance by the faction that the majority of their systems follow.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Example&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Zemina Torval: Empire(39.0)&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ans&amp;quot;&amp;gt;&lt;br /&gt;
temp = db.systems.map_reduce(query={&amp;quot;power_control_faction&amp;quot;:{&amp;quot;$exists&amp;quot;:1}},map=Code(&amp;quot;&amp;quot;&amp;quot;function(){switch(this.allegiance){case &amp;quot;Alliance&amp;quot;:emit(this.power_control_faction,{alliance:1,anarchy:0,empire:0,federation:0,independent:0});break;case &amp;quot;Anarchy&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:1,empire:0,federation:0,independent:0});break; case &amp;quot;Empire&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:1,federation:0,independent:0});break;case &amp;quot;Federation&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:1,independent:0});break;case &amp;quot;Independent&amp;quot;:emit(this.power_control_faction,{alliance:0,anarchy:0,empire:0,federation:0,independent:1});break;}}&amp;quot;&amp;quot;&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,vs){var a=vs[0];for(var i=1;i&amp;lt;vs.length;i++){var b=vs[i];a.alliance+=b.alliance;a.anarchy+=b.anarchy;a.empire+=b.empire;a.federation+=b.federation;a.independent+=b.independent;}return a}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1}); &lt;br /&gt;
for power in temp[&#039;results&#039;]:&lt;br /&gt;
    max = 0;&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
    #print(power[&#039;value&#039;])&lt;br /&gt;
    for id in power[&#039;value&#039;]:&lt;br /&gt;
        if (power[&#039;value&#039;][id] &amp;gt; max): &lt;br /&gt;
            max = power[&#039;value&#039;][id]&lt;br /&gt;
            key = id&lt;br /&gt;
    print(power[&#039;_id&#039;]+&amp;quot;: &amp;quot;+key+&amp;quot;(&amp;quot;+str(max)+&amp;quot;)&amp;quot;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40297158</name></author>
	</entry>
</feed>