<?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=40082593</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=40082593"/>
	<link rel="alternate" type="text/html" href="https://nosqlzoo.net/wiki/Special:Contributions/40082593"/>
	<updated>2026-04-17T01:38:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=774</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=774"/>
		<updated>2015-07-31T11:15:04Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.elite.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;elite&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
#JS&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&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;py3&amp;quot;&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;
pp.pprint(&lt;br /&gt;
    db.commodities.find_one()&lt;br /&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;
from bson.code import Code;temp = db.commodities.map_reduce( map=Code(&amp;quot;function(){emit(this.category,this.average_price)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;for (var i = 0; i &amp;lt; values.length; i++){total += values[i];}return Math.round(total/values.length);} &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;py3&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;py3&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;py3&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;py3&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;py3&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>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=773</id>
		<title>MAPREDUCE Elite</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_Elite&amp;diff=773"/>
		<updated>2015-07-31T11:13:26Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.elite.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;elite&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
#JS&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&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;py3&amp;quot;&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;
pp.pprint(&lt;br /&gt;
    db.commodities.find_one()&lt;br /&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;
from bson.code import Code;temp = db.commodities.map_reduce( map=Code(&amp;quot;function(){emit(this.category,this.average_price)}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key,values){var total = 0;for (var i = 0; i &amp;lt; values.length; i++){total += values[i];}return Math.round(total/values.length);} &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;py3&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;
Non-populated systems without stations do not have an allegiance, and should be ignored. &lt;br /&gt;
&amp;lt;p class=&amp;quot;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;py3&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;py3&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;py3&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;py3&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>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=772</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=772"/>
		<updated>2015-07-30T15:43:14Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;S&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of China, Russia, and the United States has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the capitals for countries that start with the same letter as their continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Using $where with find&amp;quot; &amp;gt;&lt;br /&gt;
  find({&amp;quot;$where&amp;quot;: &amp;quot; boolean expression &amp;quot;})&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;$where&amp;quot;:&amp;quot;this.name[0]==this.continent[0]&amp;quot;}, &lt;br /&gt;
      {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=771</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=771"/>
		<updated>2015-07-30T15:42:01Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;S&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of China, Russia, and the United States has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the capitals for countries that start with the same letter as their continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Using $where with find&amp;quot; &amp;gt;&lt;br /&gt;
  find({&amp;quot;$where&amp;quot;: &amp;quot; boolean statement &amp;quot;})&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;$where&amp;quot;:&amp;quot;this.name[0]==this.continent[0]&amp;quot;}, &lt;br /&gt;
      {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=770</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=770"/>
		<updated>2015-07-30T15:34:51Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;S&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of China, Russia, and the United States has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the capitals for countries that start with the same letter as their continent&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;$where&amp;quot;:&amp;quot;this.name[0]==this.continent[0]&amp;quot;}, &lt;br /&gt;
      {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=769</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=769"/>
		<updated>2015-07-30T15:34:06Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;S&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of China, Russia, and the United States has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the capitals for countries that start with the same letter as the continent&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;$where&amp;quot;:&amp;quot;this.name[0]==this.continent[0]&amp;quot;}, &lt;br /&gt;
      {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=768</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=768"/>
		<updated>2015-07-30T15:31:00Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;S&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of China, Russia, and the United States has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the capitals for countries that start with the same letter as the continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;$where&amp;quot;:&amp;quot; this.name.indexOf(this.continent[0]) == 0&amp;quot;}, &lt;br /&gt;
      {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_examples&amp;diff=767</id>
		<title>AGGREGATE examples</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_examples&amp;diff=767"/>
		<updated>2015-07-30T14:57:59Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4, width=160)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the aggregation framework==&lt;br /&gt;
These examples introduce the aggregation framework and its operators. Again we will be using the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt; performs queries in a similar way to &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the details for France&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;France&amp;quot;}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;France&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&amp;lt;code&amp;gt;limit&amp;lt;/code&amp;gt; sets the amount of documents to be handed to the next stage in the pipeline.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first document&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$limit&amp;quot;:1}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$limit&amp;quot;:1}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$project&amp;lt;/code&amp;gt; selects what fields to display.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can also has the ability to create new fields and to compare fields against each other without using &amp;lt;code&amp;gt;$where&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population density of all Asian countries. (population/area)&amp;lt;/p&amp;gt;&lt;br /&gt;
Note that &amp;quot;density&amp;quot; is a new field, made from the result of dividing two existing fields, and that &amp;lt;code&amp;gt;$divide&amp;lt;/code&amp;gt; is an aggregate function.&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Dealing with division by 0&amp;quot;&amp;gt;&lt;br /&gt;
To avoid diving by 0 insert a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt; to remove any countries with 0 area (Vatican City), then pipe these results through to &amp;lt;code&amp;gt;$project&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There is no need to check if values are &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, MongoDB will ignore these documents.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
     db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Because aggregate is a pipeline stages may be repeated, and stages don&#039;t have to be used in a specific order.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name of Asian countries with a density that&#039;s over 500 people per km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. (population/area)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
     db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$gt&amp;quot;:500}}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$gt&amp;quot;:500}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$sort&amp;lt;/code&amp;gt; allows ordering of the results set, where 1 is ascending and -1 is descending.&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that not including &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;{&amp;quot;$match&amp;quot;:{}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name of all countries in descending order.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
     db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:-1&lt;br /&gt;
        }}  &lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,}},{&amp;quot;$sort&amp;quot;:{&amp;quot;name&amp;quot;:-1}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grouping==&lt;br /&gt;
Grouping provides accumulator operations such as &amp;lt;code&amp;gt;$sum&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
All groups must have an &amp;lt;code&amp;gt;_id&amp;lt;/code&amp;gt;. To see why this is useful imagine the following:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So far you&#039;ve been using the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;As every country has a continent, it would make sense to have countries as a nested document inside continents: e.g:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[    &lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Africa&amp;quot;,&lt;br /&gt;
     &amp;quot;countries&amp;quot;:[&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Algeria&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Algiers&amp;quot;,   ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Angola&amp;quot;,     &amp;quot;capital&amp;quot;:&amp;quot;Luanda&amp;quot;,    ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Benin&amp;quot;,      &amp;quot;capital&amp;quot;:&amp;quot;Porto-Novo&amp;quot;,...}.&lt;br /&gt;
         {...},&lt;br /&gt;
         ...&lt;br /&gt;
    ]},&lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Asia&amp;quot;,&lt;br /&gt;
     &amp;quot;countries&amp;quot;:[&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Afghanistan&amp;quot;,&amp;quot;capital&amp;quot;:&amp;quot;Kabul&amp;quot;, ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Azerbaijan&amp;quot;, &amp;quot;capital&amp;quot;:&amp;quot;Baku&amp;quot;,  ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Bahrain&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Manama&amp;quot;,...},&lt;br /&gt;
         {...},&lt;br /&gt;
         ...&lt;br /&gt;
    ]},&lt;br /&gt;
    {...},&lt;br /&gt;
    ...&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection isn&#039;t like this however. It uses the following structure, which has a redundancy where &amp;lt;code&amp;gt;continent&amp;lt;/code&amp;gt; is repeated for each country.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ &lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Afghanistan&amp;quot;,&amp;quot;capital&amp;quot;:&amp;quot;Kabul&amp;quot;,  &amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;,  ...},&lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Albania&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Tirana&amp;quot;, &amp;quot;continent&amp;quot;:&amp;quot;Europe, ...},&lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Algeria&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Algiers&amp;quot;,&amp;quot;contiennt&amp;quot;:&amp;quot;Africa&amp;quot;,...},&lt;br /&gt;
    {...},&lt;br /&gt;
    ...&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The code to group by continent is &amp;lt;code&amp;gt; &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
If instead the question was to group by country the code would be &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
To operate over the whole document (which would have the same effect as &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:&amp;quot;null&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:None&amp;lt;/code&amp;gt; can be used.&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;$max&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$min&amp;lt;/code&amp;gt; can be used to get the largest and smallest values in a group.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Get the smallest and largest GDPs of each continent.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &#039;_id&#039;:&#039;$continent&#039;,&lt;br /&gt;
            &#039;min&#039;:{&amp;quot;$min&amp;quot;:&amp;quot;$gdp&amp;quot;},&lt;br /&gt;
            &#039;max&#039;:{&amp;quot;$max&amp;quot;:&amp;quot;$gdp&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;min&amp;quot;:1,&lt;br /&gt;
            &amp;quot;max&amp;quot;:1&lt;br /&gt;
        }},&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&#039;_id&#039;:&#039;$continent&#039;,&#039;min&#039;:{&amp;quot;$min&amp;quot;:&amp;quot;$gdp&amp;quot;},&#039;max&#039;:{&amp;quot;$max&amp;quot;:&amp;quot;$gdp&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;min&amp;quot;:1,&amp;quot;max&amp;quot;:1}},])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Some other useful aggregate functions to know are &amp;lt;code&amp;gt;$sum&amp;lt;/code&amp;gt; and average: &amp;lt;code&amp;gt;$avg&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This example combines all the material in these examples. &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Order the continents in descending order by total GDP, Include the average GDP for each country.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{}},&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;Total GDP&amp;quot;: {&amp;quot;$sum&amp;quot;: &amp;quot;$gdp&amp;quot;},&lt;br /&gt;
            &amp;quot;Average GDP&amp;quot;: {&amp;quot;$avg&amp;quot;: &amp;quot;$gdp&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;Total GDP&amp;quot;:-1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;Area&amp;quot;:&amp;quot;$_id&amp;quot;,&lt;br /&gt;
            &amp;quot;Total GDP&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;Average GDP&amp;quot;:1,&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&amp;quot;Total GDP&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$gdp&amp;quot;},&amp;quot;Average GDP&amp;quot;:{&amp;quot;$avg&amp;quot;:&amp;quot;$gdp&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;Total GDP&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;Area&amp;quot;:&amp;quot;$_id&amp;quot;,&amp;quot;Total GDP&amp;quot;:1,&amp;quot;Average GDP&amp;quot;:1,&amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Using Conditions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; is similar to a &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; statement in other languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
It has the form &amp;lt;code&amp;gt;&amp;quot;$cond&amp;quot;: [{&amp;lt;comparison&amp;gt; :[&amp;lt;field or value&amp;gt;,&amp;lt;field or value&amp;gt;]},&amp;lt;true case&amp;gt;,&amp;lt;false case&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&amp;quot;Europe&amp;quot;,&amp;quot;$continent&amp;quot;]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=766</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=766"/>
		<updated>2015-07-30T14:55:03Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4, width=160)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Italy&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Print a list of names for countries in the continent of &amp;quot;North America&amp;quot; change United States to USA&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
      {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
          &amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;&lt;br /&gt;
      }},&lt;br /&gt;
      {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
          &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
          &amp;quot;name&amp;quot;:1&lt;br /&gt;
      }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:{&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;United States&amp;quot;]},&amp;quot;USA&amp;quot;,&amp;quot;$name&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; for countries beginning with N - but replace the continent &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; with &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=765</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=765"/>
		<updated>2015-07-30T13:47:25Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4, width=160)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the total population of the each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Use the previous answer to find the population of the world to the nearest million&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;How to round to the nearest million&amp;quot;&amp;gt;Use the JavaScript round function : Math.round(population/1000000)*1000000 &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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(&#039;World Population in Millions&#039;, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Math.round(Array.sum(values)/1000000)*1000000;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Count number of countries by first letter&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ emit((this.name).substring(0,1), 1)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries name and area (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {first:this.name,last:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return country name or capital city that starts with a letter &#039;M&#039;&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ &lt;br /&gt;
                 if((this.name).startsWith(&#039;M&#039;)) &lt;br /&gt;
                      emit(this.name,null);&lt;br /&gt;
                 if((this.capital).startsWith(&#039;M&#039;)) &lt;br /&gt;
                   emit(this.capital,null);&lt;br /&gt;
             }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return values;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    &lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the first and last city for each letter and the count of cities&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ if(this.capital)emit((this.capital).substring(0,1), {first:this.capital, last:this.capital})}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;, count:0};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
        ret.count += 1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(key, val){&lt;br /&gt;
      if(!val.count){&lt;br /&gt;
         val.count = 1;&lt;br /&gt;
         return val;&lt;br /&gt;
      }else&lt;br /&gt;
         return val;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show country count for countries in the ranges&amp;lt;/p&amp;gt;&lt;br /&gt;
  0 to 1000000&lt;br /&gt;
  1000000 to 2000000&lt;br /&gt;
  2000000 to 3000000&lt;br /&gt;
  3000000 to 5000000&lt;br /&gt;
  5000000 to 10000000&lt;br /&gt;
  10000000 to 15000000&lt;br /&gt;
  More than 15000000  &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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){&lt;br /&gt;
                  var pop = this.population;&lt;br /&gt;
                  switch(true){&lt;br /&gt;
                    case pop&amp;lt;1000000:&lt;br /&gt;
                       emit(&amp;quot;0 TO 1000000&amp;quot;, 1);&lt;br /&gt;
                       break;&lt;br /&gt;
                    case pop&amp;lt;2000000:&lt;br /&gt;
                       emit(&amp;quot;1000000 TO 2000000&amp;quot;, 1);&lt;br /&gt;
                       break;&lt;br /&gt;
                    case pop&amp;lt;3000000:&lt;br /&gt;
                       emit(&amp;quot;2000000 TO 3000000&amp;quot;, 1);&lt;br /&gt;
                       break;&lt;br /&gt;
                    case pop&amp;lt;5000000:&lt;br /&gt;
                       emit(&amp;quot;3000000 TO 5000000&amp;quot;, 1);&lt;br /&gt;
                       break;&lt;br /&gt;
                    case pop&amp;lt;10000000:&lt;br /&gt;
                       emit(&amp;quot;5000000 TO 10000000&amp;quot;, 1);&lt;br /&gt;
                       break;&lt;br /&gt;
                    case pop&amp;lt;15000000:&lt;br /&gt;
                       emit(&amp;quot;10000000 TO 15000000&amp;quot;, 1);&lt;br /&gt;
                       break&lt;br /&gt;
                    case pop&amp;gt;15000000:&lt;br /&gt;
                       emit(&amp;quot;MORE THAN 15000000&amp;quot;, 1);&lt;br /&gt;
                       break;&lt;br /&gt;
                  }&lt;br /&gt;
 }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return Array.sum(values); }&amp;quot;&amp;quot;&amp;quot;),      &lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=764</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=764"/>
		<updated>2015-07-30T13:05:55Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4, width=160)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the total population of the each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Use the previous answer to find the population of the world to the nearest million&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;How to round to the nearest million&amp;quot;&amp;gt;Use the JavaScript round function : Math.round(population/1000000)*1000000 &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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(&#039;World Population in Millions&#039;, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Math.round(Array.sum(values)/1000000)*1000000;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Count number of countries by first letter&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ emit((this.name).substring(0,1), 1)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries name and area (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {first:this.name,last:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return country name or capital city that starts with a letter &#039;M&#039;&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ &lt;br /&gt;
                 if((this.name).startsWith(&#039;M&#039;)) &lt;br /&gt;
                      emit(this.name,null);&lt;br /&gt;
                 if((this.capital).startsWith(&#039;M&#039;)) &lt;br /&gt;
                   emit(this.capital,null);&lt;br /&gt;
             }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return values;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    &lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the first and last city for each letter and the count of cities&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ if(this.capital)emit((this.capital).substring(0,1), {first:this.capital, last:this.capital})}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;, count:0};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
        ret.count += 1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(key, val){&lt;br /&gt;
      if(!val.count){&lt;br /&gt;
         val.count = 1;&lt;br /&gt;
         return val;&lt;br /&gt;
      }else&lt;br /&gt;
         return val;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=763</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=763"/>
		<updated>2015-07-30T12:37:10Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4, width=160)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the total population of the each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Use the previous answer to find the population of the world to the nearest million&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;How to round to the nearest million&amp;quot;&amp;gt;Use the JavaScript round function : Math.round(population/1000000)*1000000 &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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(&#039;World Population in Millions&#039;, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Math.round(Array.sum(values)/1000000)*1000000;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Count number of countries by first letter&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ emit((this.name).substring(0,1), 1)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries name and area (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {first:this.name,last:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Without using &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; return the name and capital for any country or capital that starts with an &#039;L&#039;&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ if((this.name).startsWith(&#039;L&#039;)|(this.capital).startsWith(&#039;L&#039;))emit(this.name, this.capital)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return values;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Count number of countries by first letter&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ emit((this.name).substring(0,1), 1)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the first and last city for each letter and the count of cities&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ if(this.capital)emit((this.capital).substring(0,1), {first:this.capital, last:this.capital})}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;, count:0};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
        ret.count += 1;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(key, val){&lt;br /&gt;
      if(!val.count){&lt;br /&gt;
         val.count = 1;&lt;br /&gt;
         return val;&lt;br /&gt;
      }else&lt;br /&gt;
         return val;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=762</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=762"/>
		<updated>2015-07-30T12:17:41Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the total population of the each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Use the previous answer to find the population of the world to the nearest million&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;How to round to the nearest million&amp;quot;&amp;gt;Use the JavaScript round function : Math.round(population/1000000)*1000000 &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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(&#039;World Population in Millions&#039;, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Math.round(Array.sum(values)/1000000)*1000000;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Count number of countries by first letter&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ emit((this.name).substring(0,1), 1)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries name and area (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {first:this.name,last:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {first:&#039;ZZZ&#039;,last:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.first&amp;gt;values[i].first) ret.first=values[i].first;&lt;br /&gt;
        if (ret.last&amp;lt;values[i].last) ret.last=values[i].last;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Without using &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; return the name and capital for any country or capital that starts with an &#039;L&#039;&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ if((this.name).startsWith(&#039;L&#039;)|(this.capital).startsWith(&#039;L&#039;))emit(this.name, this.capital)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return values;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Count number of countries by first letter&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ emit((this.name).substring(0,1), 1)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=761</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=761"/>
		<updated>2015-07-30T11:24:59Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the total population of the each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Use the previous answer to find the population of the world to the nearest million&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;How to round to the nearest million&amp;quot;&amp;gt;Use the JavaScript round function : Math.round(population/1000000)*1000000 &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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(&#039;World Population in Millions&#039;, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Math.round(Array.sum(values)/1000000)*1000000;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries name and area (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {min:this.name,max:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {min:&#039;ZZZ&#039;,max:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.min&amp;gt;values[i].min) ret.min=values[i].min;&lt;br /&gt;
        if (ret.max&amp;lt;values[i].max) ret.max=values[i].max;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Without using query return the name and capital for any country or capital that starts with an &#039;L&#039;&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;&amp;quot;&amp;quot;function(){ if((this.name).startsWith(&#039;L&#039;)|(this.capital).startsWith(&#039;L&#039;))emit(this.name, this.capital)}&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
       return values;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=760</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=760"/>
		<updated>2015-07-30T10:40:14Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the total population of the each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {min:this.name,max:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {min:&#039;ZZZ&#039;,max:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.min&amp;gt;values[i].min) ret.min=values[i].min;&lt;br /&gt;
        if (ret.max&amp;lt;values[i].max) ret.max=values[i].max;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {min:this.name,max:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {min:&#039;ZZZ&#039;,max:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.min&amp;gt;values[i].min) ret.min=values[i].min;&lt;br /&gt;
        if (ret.max&amp;lt;values[i].max) ret.max=values[i].max;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=759</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=759"/>
		<updated>2015-07-30T09:48:59Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show a list of countries found in North America&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;Africa&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){return values.toString()}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;},map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), reduce=Code(&amp;quot;function(key, values){return values.toString()}&amp;quot;),out={&amp;quot;inline&amp;quot;:1},)&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, 1)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      return Array.sum(values);&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first and last country based on name order for each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, {min:this.name,max:this.name})}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){&lt;br /&gt;
      var ret = {min:&#039;ZZZ&#039;,max:&#039;AAA&#039;};&lt;br /&gt;
      for(var i=0;i&amp;lt;values.length;i++){&lt;br /&gt;
        if (ret.min&amp;gt;values[i].min) ret.min=values[i].min;&lt;br /&gt;
        if (ret.max&amp;lt;values[i].max) ret.max=values[i].max;&lt;br /&gt;
      }&lt;br /&gt;
      return ret;&lt;br /&gt;
    }&amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=753</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=753"/>
		<updated>2015-07-29T15:11:10Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MapReduce the basics==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces the &amp;lt;code&amp;gt;MapReduce&amp;lt;/code&amp;gt; command.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[MapReduce]] examples are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show a list of countries found in North America&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;Africa&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){return values.toString()}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;},map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), reduce=Code(&amp;quot;function(key, values){return values.toString()}&amp;quot;),out={&amp;quot;inline&amp;quot;:1},)&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), reduce=Code(&amp;quot;function(key, values){return values.length}&amp;quot;),out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the smallest 3 countries (ignore areas of 0 or None)&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;$and&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}, {&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}]},&lt;br /&gt;
        sort={&amp;quot;area&amp;quot;:1},&lt;br /&gt;
        limit=3,&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name, this.area)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1},&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=752</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=752"/>
		<updated>2015-07-29T14:49:13Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show a list of countries found in North America&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;Africa&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;function(key, values){return values.toString()}&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(&lt;br /&gt;
   temp[&amp;quot;results&amp;quot;]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;},map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), reduce=Code(&amp;quot;function(key, values){return values.toString()}&amp;quot;),out={&amp;quot;inline&amp;quot;:1},)&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the number of countries on each continent&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=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){emit(this.continent, this.name)}&amp;quot;), reduce=Code(&amp;quot;function(key, values){return values.length}&amp;quot;),out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
pp.pprint(temp[&amp;quot;results&amp;quot;])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=751</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=751"/>
		<updated>2015-07-29T13:54:05Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&lt;br /&gt;
                   &#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name, {&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000};}&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show per-capita GDP for the trillion dollar countries to the nearest $1000.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};}&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;
== Harder Questions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Find out more about &amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; at [[AGGREGATE_examples]]&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and the continent - but substitute Australasia for Oceania - for countries beginning with N.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&amp;quot;]}, &lt;br /&gt;
            &amp;quot;_id&amp;quot;:0&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=750</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=750"/>
		<updated>2015-07-29T13:40:14Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&lt;br /&gt;
                   &#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name, {&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000};}&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show per-capita GDP for the trillion dollar countries to the nearest $1000.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};}&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;
== Harder Questions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Find out more about &amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; at [[AGGREGATE_examples]]&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and the continent - but substitute Australasia for Oceania - for countries beginning with N.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Austalasia&amp;quot;,&amp;quot;$continent&amp;quot;]}, &lt;br /&gt;
            &amp;quot;_id&amp;quot;:0&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Austalasia&amp;quot;,&amp;quot;$continent&amp;quot;]},&amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; for countries beginning with N - but replace the continent &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; with &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=748</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=748"/>
		<updated>2015-07-29T13:37:27Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&lt;br /&gt;
                   &#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name, {&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000};}&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show per-capita GDP for the trillion dollar countries to the nearest $1000.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};}&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;
== Harder Questions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Find out more about &amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; at [[AGGREGATE_examples]]&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and the continent - but substitute Australasia for Oceania - for countries beginning with N.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Austalasia&amp;quot;,&amp;quot;$continent&amp;quot;]}, &lt;br /&gt;
            &amp;quot;_id&amp;quot;:0&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Austalasia&amp;quot;,&amp;quot;$continent&amp;quot;]},&amp;quot;_id&amp;quot;:0}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=745</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=745"/>
		<updated>2015-07-29T12:44:43Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&lt;br /&gt;
                   &#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name, {&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000};}&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show per-capita GDP for the trillion dollar countries to the nearest $1000.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};}&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;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=744</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=744"/>
		<updated>2015-07-29T12:30:54Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:Math.round(v[&#039;pop&#039;]*1000000)/1000000,&lt;br /&gt;
                   &#039;gdp in billions&#039;:Math.round(v[&#039;gdp&#039;]*1000000000)/1000000000&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code &lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:math.Round(v[&#039;pop&#039;]/1000000)/1000000,&#039;gdp in billions&#039;:math.Round(v[&#039;gdp&#039;]/1000000000)/1000000000};}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show per-capita GDP for the trillion dollar countries to the nearest $1000.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(map=Code(&amp;quot;function(){if(this.gdp &amp;gt; 1000000000000)emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;),reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;per-capita GDP&#039;:Math.round((v[&#039;gdp&#039;]/v[&#039;pop&#039;])/1000)*1000};}&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;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=743</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=743"/>
		<updated>2015-07-29T12:19:55Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:parseFloat((v[&#039;pop&#039;]/1000000).toFixed(2)),&lt;br /&gt;
                   &#039;gdp in billions&#039;:parseFloat((v[&#039;gdp&#039;]/1000000000).toFixed(2))&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code &lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:parseFloat((v[&#039;pop&#039;]/1000000).toFixed(2)),&#039;gdp in billions&#039;:parseFloat((v[&#039;gdp&#039;]/1000000000).toFixed(2))};}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the per-capita GDP for those countries with a GDP of at least one trillion (1000000000000; that is 12 zeros). Round this value to the nearest 1000.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show per-capita GDP for the trillion dollar countries to the nearest $1000.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
temp = db.world.map_reduce(&lt;br /&gt;
        query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},&lt;br /&gt;
        map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), &lt;br /&gt;
        reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){&lt;br /&gt;
               return {&lt;br /&gt;
                   &#039;pop in millions&#039;:parseFloat((v[&#039;pop&#039;]/1000000).toFixed(2)),&lt;br /&gt;
                   &#039;gdp in billions&#039;:parseFloat((v[&#039;gdp&#039;]/1000000000).toFixed(2))&lt;br /&gt;
               };&lt;br /&gt;
           }&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
        out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
pp.pprint(temp[&#039;results&#039;]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
from bson.code import Code &lt;br /&gt;
temp = db.world.map_reduce(query={&amp;quot;continent&amp;quot;:&amp;quot;South America&amp;quot;},map=Code(&amp;quot;function(){emit(this.name,{&#039;gdp&#039;:this.gdp,&#039;pop&#039;:this.population});}&amp;quot;), reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(key, values){ return values} &amp;quot;&amp;quot;&amp;quot;),finalize=Code(&amp;quot;&amp;quot;&amp;quot;function(k, v){return {&#039;pop in millions&#039;:parseFloat((v[&#039;pop&#039;]/1000000).toFixed(2)),&#039;gdp in billions&#039;:parseFloat((v[&#039;gdp&#039;]/1000000000).toFixed(2))};}&amp;quot;&amp;quot;&amp;quot;),out={&amp;quot;inline&amp;quot;:1})&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=742</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=742"/>
		<updated>2015-07-29T11:31:42Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},&lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
USA and China are big in population &amp;lt;span class=strong&amp;gt;and&amp;lt;/span&amp;gt; big by area. Exclude these countries.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population but not both. Show name, population and area.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
        {&amp;quot;$or&amp;quot;:[&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},&lt;br /&gt;
          {&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}&lt;br /&gt;
        ]},    &lt;br /&gt;
        {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:250000000}},{&amp;quot;area&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000},&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},    {&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the name and population in millions and the GDP in billions for the countries of the continent &#039;South America&#039;. Use the ROUND function to show the values to two decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
Introducing [[MapReduce]]&lt;br /&gt;
&amp;lt;div class=hint title=&#039;Millions and billions&#039;&amp;gt;Divide by 1000000 (6 zeros) for millions. Divide by 1000000000 (9 zeros) for billions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;For South America show population in millions and GDP in billions to 2 decimal places.&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([&lt;br /&gt;
  {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},&lt;br /&gt;
  {&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;pop in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[{&amp;quot;$subtract&amp;quot;:[{&amp;quot;$add&amp;quot;:[{&amp;quot;$multiply&amp;quot;:[{&amp;quot;$divide&amp;quot;:[&#039;$population&#039;,1000000]},100]},0.5]},{&amp;quot;$mod&amp;quot;:[{&amp;quot;$add&amp;quot;:[{&amp;quot;$multiply&amp;quot;:[{&amp;quot;$divide&amp;quot;:[&#039;$population&#039;,1000000]},100]},0.5]},1]}]},100]},&lt;br /&gt;
      &amp;quot;gdp in billions&amp;quot;:{&amp;quot;$divide&amp;quot;:[{&amp;quot;$subtract&amp;quot;:[{&amp;quot;$add&amp;quot;:[{&amp;quot;$multiply&amp;quot;:[{&amp;quot;$divide&amp;quot;:[&#039;$gdp&#039;,1000000000]},100]},0.5]},{&amp;quot;$mod&amp;quot;:[{&amp;quot;$add&amp;quot;:[{&amp;quot;$multiply&amp;quot;:[{&amp;quot;$divide&amp;quot;:[&#039;$gdp&#039;,1000000000]},100]},0.5]},1]}]},100]},&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0}}&lt;br /&gt;
  ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=727</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=727"/>
		<updated>2015-07-28T16:16:50Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name for the countries that have a population of at least 200 million. 200 million is 200000000, there are eight zeros.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find(&lt;br /&gt;
      {&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}},&lt;br /&gt;
      {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0}&lt;br /&gt;
    )&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Give the name and the per capita GDP for those countries with a population of at least 200 million.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[AGGREGATE examples]] are available.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;per capita GDP is the GDP divided by the population GDP/population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;gdp/population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$gdp&amp;quot;,&amp;quot;$population&amp;quot;]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population in millions for the countries of the continent &#039;South America&#039;. Divide the population by 1000000 to get population in millions.&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population in millions&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population for France, Germany, Italy&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;France&amp;quot;, &amp;quot;Germany&amp;quot;, &amp;quot;Italy&amp;quot;]}}},{&amp;quot;$project&amp;quot;:{&amp;quot;name&amp;quot;:1, &amp;quot;population&amp;quot;:1, &amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries which have a name that includes the word &#039;United&#039;&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;\s?United\s?&amp;quot;}},{&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Two ways to be big: A country is big if it has an area of more than 3 million sq km or it has a population of more than 250 million.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the countries that are big by area or big by population. Show name, population and area&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;area&amp;quot;:{&amp;quot;$gt&amp;quot;:3000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:250000000}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;area&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=721</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=721"/>
		<updated>2015-07-28T15:06:08Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Observe the result of running a simple mongoDB command.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;FIND name, continent, population FROM world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.find({},{&lt;br /&gt;
      &amp;quot;name&amp;quot;:1,&lt;br /&gt;
      &amp;quot;continent&amp;quot;:1,&lt;br /&gt;
      &amp;quot;population&amp;quot;:1,&lt;br /&gt;
      &amp;quot;_id&amp;quot;:0&lt;br /&gt;
    })&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({},{&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:1,&amp;quot;population&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=718</id>
		<title>FIND from WORLD</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_from_WORLD&amp;diff=718"/>
		<updated>2015-07-28T14:49:26Z</updated>

		<summary type="html">&lt;p&gt;40082593: Created page with &amp;quot;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt; #ENCODING import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&amp;#039;utf-16&amp;#039;) #MONGO from pymongo import MongoClient client = MongoCli...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=714</id>
		<title>MAPREDUCE basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE_basics&amp;diff=714"/>
		<updated>2015-07-28T14:43:50Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=MAPREDUCE&amp;diff=713</id>
		<title>MAPREDUCE</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=MAPREDUCE&amp;diff=713"/>
		<updated>2015-07-28T14:20:40Z</updated>

		<summary type="html">&lt;p&gt;40082593: Created page with &amp;quot;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt; #ENCODING import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&amp;#039;utf-16&amp;#039;) #MONGO from pymongo import MongoClient client = MongoCli...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=680</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=680"/>
		<updated>2015-07-28T12:11:35Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Italy&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Print a list of names for countries in the continent of &amp;quot;North America&amp;quot; change United States to USA&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
      {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
          &amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;&lt;br /&gt;
      }},&lt;br /&gt;
      {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
          &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
          &amp;quot;name&amp;quot;:1&lt;br /&gt;
      }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:{&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;United States&amp;quot;]},&amp;quot;USA&amp;quot;,&amp;quot;$name&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; for countries beginning with N - but replace the continent &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; with &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=672</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=672"/>
		<updated>2015-07-28T11:52:10Z</updated>

		<summary type="html">&lt;p&gt;40082593: /* Harder Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Italy&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Print a list of names for countries in the continent of &amp;quot;North America&amp;quot; change United States to USA&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
      {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
          &amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;&lt;br /&gt;
      }},&lt;br /&gt;
      {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
          &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
          &amp;quot;name&amp;quot;:1&lt;br /&gt;
      }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:{&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;United States&amp;quot;]},&amp;quot;USA&amp;quot;,&amp;quot;$name&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; - but substitute &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; - for countries beginning with N.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=669</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=669"/>
		<updated>2015-07-28T11:50:11Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Italy&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Print a list of names for countries in the continent of &amp;quot;North America&amp;quot; change United States to USA&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
      {&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;}},&lt;br /&gt;
      {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
          &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
          &amp;quot;name&amp;quot;:1&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:{&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;United States&amp;quot;]},&amp;quot;USA&amp;quot;,&amp;quot;$name&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; - but substitute &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; - for countries beginning with N.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=662</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=662"/>
		<updated>2015-07-28T11:41:49Z</updated>

		<summary type="html">&lt;p&gt;40082593: /* Harder Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Italy&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Print a list of names for countries in the continent of &amp;quot;North America&amp;quot; change United States to USA&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:&amp;quot;North America&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot; :{&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;United States&amp;quot;]},&amp;quot;USA&amp;quot;,&amp;quot;$name&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; - but substitute &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; - for countries beginning with N.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_examples&amp;diff=645</id>
		<title>AGGREGATE examples</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_examples&amp;diff=645"/>
		<updated>2015-07-28T11:06:01Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introducing the aggregation framework==&lt;br /&gt;
These examples introduce the aggregation framework and its operators. Again we will be using the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt; performs queries in a similar way to &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show all the details for France&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;France&amp;quot;}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;France&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&amp;lt;code&amp;gt;limit&amp;lt;/code&amp;gt; sets the amount of documents to be handed to the next stage in the pipeline.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Return the first document&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$limit&amp;quot;:1}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$limit&amp;quot;:1}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$project&amp;lt;/code&amp;gt; selects what fields to display.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can also has the ability to create new fields and to compare fields against each other without using &amp;lt;code&amp;gt;$where&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name and population density of all Asian countries. (population/area)&amp;lt;/p&amp;gt;&lt;br /&gt;
Note that &amp;quot;density&amp;quot; is a new field, made from the result of dividing two existing fields, and that &amp;lt;code&amp;gt;$divide&amp;lt;/code&amp;gt; is an aggregate function.&lt;br /&gt;
&amp;lt;div class=hint title=&amp;quot;Dealing with division by 0&amp;quot;&amp;gt;&lt;br /&gt;
To avoid diving by 0 insert a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt; to remove any countries with 0 area (Vatican City), then pipe these results through to &amp;lt;code&amp;gt;$project&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
There is no need to check if values are &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;, MongoDB will ignore these documents.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
     db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Because aggregate is a pipeline stages may be repeated, and stages don&#039;t have to be used in a specific order.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name of Asian countries with a density that&#039;s over 500 people per km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. (population/area)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
     db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$gt&amp;quot;:500}}}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0},&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$gt&amp;quot;:500}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$sort&amp;lt;/code&amp;gt; allows ordering of the results set, where 1 is ascending and -1 is descending.&amp;lt;br/&amp;gt;&lt;br /&gt;
Note that not including &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;{&amp;quot;$match&amp;quot;:{}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the name of all countries in descending order.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
     db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:-1&lt;br /&gt;
        }}  &lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,}},{&amp;quot;$sort&amp;quot;:{&amp;quot;name&amp;quot;:-1}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Grouping==&lt;br /&gt;
Grouping provides accumulator operations such as &amp;lt;code&amp;gt;$sum&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
All groups must have an &amp;lt;code&amp;gt;_id&amp;lt;/code&amp;gt;. To see why this is useful imagine the following:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So far you&#039;ve been using the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;As every country has a continent, it would make sense to have countries as a nested document inside continents: e.g:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[    &lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Africa&amp;quot;,&lt;br /&gt;
     &amp;quot;countries&amp;quot;:[&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Algeria&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Algiers&amp;quot;,   ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Angola&amp;quot;,     &amp;quot;capital&amp;quot;:&amp;quot;Luanda&amp;quot;,    ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Benin&amp;quot;,      &amp;quot;capital&amp;quot;:&amp;quot;Porto-Novo&amp;quot;,...}.&lt;br /&gt;
         {...},&lt;br /&gt;
         ...&lt;br /&gt;
    ]},&lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Asia&amp;quot;,&lt;br /&gt;
     &amp;quot;countries&amp;quot;:[&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Afghanistan&amp;quot;,&amp;quot;capital&amp;quot;:&amp;quot;Kabul&amp;quot;, ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Azerbaijan&amp;quot;, &amp;quot;capital&amp;quot;:&amp;quot;Baku&amp;quot;,  ...},&lt;br /&gt;
         {&amp;quot;name&amp;quot;:&amp;quot;Bahrain&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Manama&amp;quot;,...},&lt;br /&gt;
         {...},&lt;br /&gt;
         ...&lt;br /&gt;
    ]},&lt;br /&gt;
    {...},&lt;br /&gt;
    ...&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection isn&#039;t like this however. It uses the following structure, which has a redundancy where &amp;lt;code&amp;gt;continent&amp;lt;/code&amp;gt; is repeated for each country.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ &lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Afghanistan&amp;quot;,&amp;quot;capital&amp;quot;:&amp;quot;Kabul&amp;quot;,  &amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;,  ...},&lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Albania&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Tirana&amp;quot;, &amp;quot;continent&amp;quot;:&amp;quot;Europe, ...},&lt;br /&gt;
    {&amp;quot;name&amp;quot;:&amp;quot;Algeria&amp;quot;,    &amp;quot;capital&amp;quot;:&amp;quot;Algiers&amp;quot;,&amp;quot;contiennt&amp;quot;:&amp;quot;Africa&amp;quot;,...},&lt;br /&gt;
    {...},&lt;br /&gt;
    ...&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The code to group by continent is &amp;lt;code&amp;gt; &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt;
If instead the question was to group by country the code would be &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
To operate over the whole document (which would have the same effect as &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:&amp;quot;null&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;_id&amp;quot;:None&amp;lt;/code&amp;gt; can be used.&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;$max&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$min&amp;lt;/code&amp;gt; can be used to get the largest and smallest values in a group.&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Get the smallest and largest GDPs of each continent.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &#039;_id&#039;:&#039;$continent&#039;,&lt;br /&gt;
            &#039;min&#039;:{&amp;quot;$min&amp;quot;:&amp;quot;$gdp&amp;quot;},&lt;br /&gt;
            &#039;max&#039;:{&amp;quot;$max&amp;quot;:&amp;quot;$gdp&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;min&amp;quot;:1,&lt;br /&gt;
            &amp;quot;max&amp;quot;:1&lt;br /&gt;
        }},&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&#039;_id&#039;:&#039;$continent&#039;,&#039;min&#039;:{&amp;quot;$min&amp;quot;:&amp;quot;$gdp&amp;quot;},&#039;max&#039;:{&amp;quot;$max&amp;quot;:&amp;quot;$gdp&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;min&amp;quot;:1,&amp;quot;max&amp;quot;:1}},])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Some other useful aggregate functions to know are &amp;lt;code&amp;gt;$sum&amp;lt;/code&amp;gt; and average: &amp;lt;code&amp;gt;$avg&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This example combines all the material in these examples. &lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Order the continents in descending order by total GDP, Include the average GDP for each country.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{}},&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;Total GDP&amp;quot;: {&amp;quot;$sum&amp;quot;: &amp;quot;$gdp&amp;quot;},&lt;br /&gt;
            &amp;quot;Average GDP&amp;quot;: {&amp;quot;$avg&amp;quot;: &amp;quot;$gdp&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;Total GDP&amp;quot;:-1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;Area&amp;quot;:&amp;quot;$_id&amp;quot;,&lt;br /&gt;
            &amp;quot;Total GDP&amp;quot;: 1,&lt;br /&gt;
            &amp;quot;Average GDP&amp;quot;:1,&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&amp;quot;Total GDP&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$gdp&amp;quot;},&amp;quot;Average GDP&amp;quot;:{&amp;quot;$avg&amp;quot;:&amp;quot;$gdp&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;Total GDP&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;Area&amp;quot;:&amp;quot;$_id&amp;quot;,&amp;quot;Total GDP&amp;quot;:1,&amp;quot;Average GDP&amp;quot;:1,&amp;quot;_id&amp;quot;:0}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Using Conditions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; is similar to a &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; statement in other languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
It has the form &amp;lt;code&amp;gt;&amp;quot;$cond&amp;quot;: [{&amp;lt;comparison&amp;gt; :[&amp;lt;field or value&amp;gt;,&amp;lt;field or value&amp;gt;]},&amp;lt;true case&amp;gt;,&amp;lt;false case&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&amp;quot;Europe&amp;quot;,&amp;quot;$continent&amp;quot;]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=633</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=633"/>
		<updated>2015-07-28T10:40:28Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Italy&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Using Conditions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; is similar to a &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; statement in other languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
It has the form &amp;lt;code&amp;gt;&amp;quot;$cond&amp;quot;: [{&amp;lt;comparison&amp;gt; :[&amp;lt;field or value&amp;gt;,&amp;lt;field or value&amp;gt;]},&amp;lt;true case&amp;gt;,&amp;lt;false case&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Using &amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt;, reattempt the above question but change &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&amp;quot;Europe&amp;quot;,&amp;quot;$continent&amp;quot;]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&amp;quot;Europe&amp;quot;,&amp;quot;$continent&amp;quot;]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; - but substitute &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; - for countries beginning with N.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=630</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=630"/>
		<updated>2015-07-28T10:36:44Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=&amp;quot;setup&amp;quot;&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=629</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=629"/>
		<updated>2015-07-28T10:35:53Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=628</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=628"/>
		<updated>2015-07-28T10:34:29Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=627</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=627"/>
		<updated>2015-07-28T10:33:45Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show capital and population for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=626</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=626"/>
		<updated>2015-07-28T10:31:29Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1))[0])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show &amp;lt;code&amp;gt;capital&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; for the top 5 capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=625</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=625"/>
		<updated>2015-07-28T10:25:55Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()[0]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1)[0]))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=624</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=624"/>
		<updated>2015-07-28T10:25:06Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
  db.world.find({},{&amp;quot;capital&amp;quot;:1, &amp;quot;_id&amp;quot;:0})&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1)[0]))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=621</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=621"/>
		<updated>2015-07-28T10:19:41Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1)[0]))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=614</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=614"/>
		<updated>2015-07-28T10:12:44Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use [[Sort]] to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=610</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=610"/>
		<updated>2015-07-28T10:05:43Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; command and comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039; which contains details of around 250 countries of the world:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;sort()&amp;lt;/code&amp;gt; to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=609</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=609"/>
		<updated>2015-07-28T10:04:02Z</updated>

		<summary type="html">&lt;p&gt;40082593: /* Working with the world collection of countries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;These examples introduce NoSQL using MonogDB and PyMongo under Python3.4. We will be using the find() command and basic comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039;:&amp;lt;/p&amp;gt;&lt;br /&gt;
[[FIND examples]] are available.&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;sort()&amp;lt;/code&amp;gt; to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=601</id>
		<title>AGGREGATE world</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=AGGREGATE_world&amp;diff=601"/>
		<updated>2015-07-28T09:38:21Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Country Profile==&lt;br /&gt;
For these questions you should use &amp;lt;code&amp;gt;aggregate([])&amp;lt;/code&amp;gt; on the collection &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;per capita GDP&amp;lt;/code&amp;gt; for those countries with a &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; of at least 200 million.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate per capita GDP&amp;quot;&amp;gt;&lt;br /&gt;
per capita GDP is the GDP divided by the population.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:250000000}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,1000000]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;population&amp;quot;:{&amp;quot;$gte&amp;quot;:200000000}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;per capita GDP&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$gdp&amp;quot;,&amp;quot;$population&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Give the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; of all countries. Ignore results where the density is &amp;quot;None&amp;quot;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;How to calculate population density&amp;quot;&amp;gt;&lt;br /&gt;
population density is the population divided by the area&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hint&amp;quot; title=&amp;quot;Division by 0 error?&amp;quot;&amp;gt;&lt;br /&gt;
Use a &amp;lt;code&amp;gt;$match&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$divide&amp;quot;: [&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;density&amp;quot;: {&amp;quot;$ne&amp;quot;:None}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&amp;quot;]}}},{&amp;quot;$match&amp;quot;:{&amp;quot;density&amp;quot;:{&amp;quot;$ne&amp;quot;:None}}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population&amp;lt;/code&amp;gt; in millions for the countries of the continent &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;. Divide the population by 1000000 to get population in millions. &lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;continent&amp;quot;:{&amp;quot;$eq&amp;quot;:&amp;quot;South America&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,1000000]}}}])))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;population density&amp;lt;/code&amp;gt; for &amp;lt;b&amp;gt;France&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;Germany&amp;lt;/b&amp;gt;, and &amp;lt;b&amp;gt;Italy&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;: {&amp;quot;$in&amp;quot;:[&#039;United Kingdom&#039;,&#039;United States&#039;,&#039;Brazil&#039;]},&lt;br /&gt;
            &amp;quot;population&amp;quot;: {&amp;quot;$ne&amp;quot;: None},&lt;br /&gt;
            &amp;quot;area&amp;quot;: {&amp;quot;$ne&amp;quot;: 0}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&#039;France&#039;,&#039;Germany&#039;,&#039;Brazil&#039;]},&amp;quot;population&amp;quot;:{&amp;quot;$ne&amp;quot;:None},&amp;quot;area&amp;quot;:{&amp;quot;$ne&amp;quot;:0}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;population density&amp;quot;:{&amp;quot;$divide&amp;quot;:[&amp;quot;$population&amp;quot;,&amp;quot;$area&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Order the &amp;lt;code&amp;gt;continents&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt; from most to least.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$name&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$max&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Using Conditions&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt; is similar to a &amp;lt;code&amp;gt;CASE&amp;lt;/code&amp;gt; statement in other languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
It has the form &amp;lt;code&amp;gt;&amp;quot;$cond&amp;quot;: [{&amp;lt;comparison&amp;gt; :[&amp;lt;field or value&amp;gt;,&amp;lt;field or value&amp;gt;]},&amp;lt;true case&amp;gt;,&amp;lt;false case&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Using &amp;lt;code&amp;gt;$cond&amp;lt;/code&amp;gt;, reattempt the above question but change &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&amp;quot;Europe&amp;quot;,&amp;quot;$continent&amp;quot;]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&amp;quot;Europe&amp;quot;,&amp;quot;$continent&amp;quot;]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}])))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Combine &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt;, and then list the continents by area. Biggest first.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:{&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&lt;br /&gt;
                    {&amp;quot;$cond&amp;quot;: [{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]},&amp;quot;The East&amp;quot;,&amp;quot;$continent&amp;quot;]}]&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;: &amp;quot;$area&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$sort&amp;quot;:{&lt;br /&gt;
            &amp;quot;area&amp;quot;: -1&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:1,&lt;br /&gt;
            &amp;quot;area&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$group&amp;quot;:{&amp;quot;_id&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&amp;quot;America&amp;quot;,{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}]},&amp;quot;area&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$area&amp;quot;}}},{&amp;quot;$sort&amp;quot;:{&amp;quot;area&amp;quot;:-1}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:1,&amp;quot;area&amp;quot;:1}}]))) &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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; - but substitute &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; - for countries beginning with N.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.aggregate([{&amp;quot;$match&amp;quot;:{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^N&amp;quot;}}},{&amp;quot;$project&amp;quot;:{&amp;quot;_id&amp;quot;:0,&amp;quot;name&amp;quot;:1,&amp;quot;continent&amp;quot;:{&amp;quot;$cond&amp;quot;:[{&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,&amp;quot;$continent&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Show the &amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt; and the &amp;lt;b&amp;gt;continent&amp;lt;/b&amp;gt; but:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; for &amp;lt;b&amp;gt;Europe&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Asia&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;substitute &amp;lt;b&amp;gt;America&amp;lt;/b&amp;gt; - for each country in &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Only show countries beginning with &amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you&#039;re struggling you may want to experiment with &amp;lt;code&amp;gt;$and&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;$or&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$match&amp;quot;:{&lt;br /&gt;
            &amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^A|^B&amp;quot;}&lt;br /&gt;
        }},&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;continent&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [{&lt;br /&gt;
                    &amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Europe&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Asia&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Eurasia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                            {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;North America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;South America&amp;quot;]},&lt;br /&gt;
                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]}&lt;br /&gt;
                            ]},&amp;quot;America&amp;quot;,&amp;quot;$continent&amp;quot;]}&lt;br /&gt;
                ]}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Put the continents right...&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Oceania&amp;lt;/b&amp;gt; becomes &amp;lt;b&amp;gt;Australasia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Countries in &amp;lt;b&amp;gt;Eurasia&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;Turkey&amp;lt;/b&amp;gt; go to &amp;lt;b&amp;gt;Europe/Asia&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;b&amp;gt;Caribbean&amp;lt;/b&amp;gt; islands starting with &#039;&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;&#039; go to &amp;lt;b&amp;gt;North America&amp;lt;/b&amp;gt;, other Caribbean islands go to &amp;lt;b&amp;gt;South America&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Show the name, the original continent and the new continent of all countries.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$project&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:0,&lt;br /&gt;
            &amp;quot;name&amp;quot;:1,&lt;br /&gt;
            &amp;quot;original&amp;quot;: &amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;new&amp;quot;: {&lt;br /&gt;
                &amp;quot;$cond&amp;quot;: [&lt;br /&gt;
                    {&amp;quot;$or&amp;quot;:[ &lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Eurasia&amp;quot;]},&lt;br /&gt;
                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$name&amp;quot;,&amp;quot;Turkey&amp;quot;]}&lt;br /&gt;
                    ]},&amp;quot;Europe/Asia&amp;quot;,{&lt;br /&gt;
                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                            {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Oceania&amp;quot;]},&amp;quot;Australasia&amp;quot;,{&lt;br /&gt;
                                &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                    {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                        {&amp;quot;$eq&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                    ]},&amp;quot;North America&amp;quot;,{&lt;br /&gt;
                                        &amp;quot;$cond&amp;quot;:[&lt;br /&gt;
                                            {&amp;quot;$and&amp;quot;:[&lt;br /&gt;
                                                {&amp;quot;$eq&amp;quot;:[&amp;quot;$continent&amp;quot;,&amp;quot;Caribbean&amp;quot;]},&lt;br /&gt;
                                                {&amp;quot;$ne&amp;quot;:[{&amp;quot;$substr&amp;quot;:[&amp;quot;$name&amp;quot;,0,1]}, &amp;quot;B&amp;quot;]}&lt;br /&gt;
                                            ]},&amp;quot;South America&amp;quot;,&amp;quot;$continent&amp;quot;&lt;br /&gt;
                                        ]&lt;br /&gt;
                                    }&lt;br /&gt;
                                ]&lt;br /&gt;
                            }&lt;br /&gt;
                        ]&lt;br /&gt;
                   }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        }}&lt;br /&gt;
    ])&lt;br /&gt;
))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=Sum_and_Count&amp;diff=600</id>
		<title>Sum and Count</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=Sum_and_Count&amp;diff=600"/>
		<updated>2015-07-28T09:23:15Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
#CODE&lt;br /&gt;
from bson.code import Code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{TopTenTips}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:25em&amp;quot;&amp;gt;&lt;br /&gt;
There are many ways to do this in MongoDB.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;count()&amp;lt;/code&amp;gt; is a cursor method that takes a query and returns a number equal to the amount of documents that matched the query.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$sum&amp;lt;/code&amp;gt; is an aggregation operator availible in the &amp;lt;code&amp;gt;$group&amp;lt;/code&amp;gt; stage, that can be used to both sum values and count the number of documents.&amp;lt;br/&amp;gt;&lt;br /&gt;
mapReduce can produce a sum or a count during the results stage by using JavaScript.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;.count()&lt;br /&gt;
&amp;lt;div class=&amp;quot;def&amp;quot;&amp;gt;print(db.world.count({&amp;quot;continent&amp;quot;:&amp;quot;Africa&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;$sum&lt;br /&gt;
&amp;lt;div class=&amp;quot;def&amp;quot;&amp;gt;pp.pprint(list(&lt;br /&gt;
    db.world.aggregate([&lt;br /&gt;
        {&amp;quot;$group&amp;quot;:{&lt;br /&gt;
            &amp;quot;_id&amp;quot;:&amp;quot;$continent&amp;quot;,&lt;br /&gt;
            &amp;quot;sum of populations&amp;quot;:{&amp;quot;$sum&amp;quot;:&amp;quot;$population&amp;quot;},&lt;br /&gt;
            &amp;quot;count of countries&amp;quot;:{&amp;quot;$sum&amp;quot;:1}&lt;br /&gt;
        }}&lt;br /&gt;
    ])&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;py3&amp;quot;&amp;gt;Array.sum()&lt;br /&gt;
&amp;lt;div class=&amp;quot;def&amp;quot;&amp;gt;temp = db.world.map_reduce(&lt;br /&gt;
    map=Code(&amp;quot;function(){emit(this.continent, this.population)}&amp;quot;),&lt;br /&gt;
    reduce=Code(&amp;quot;&amp;quot;&amp;quot;function(k,v){&lt;br /&gt;
                       return Array.sum(v)&lt;br /&gt;
                   }&lt;br /&gt;
                &amp;quot;&amp;quot;&amp;quot;),&lt;br /&gt;
    out={&amp;quot;inline&amp;quot;:1}&lt;br /&gt;
)&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
	<entry>
		<id>https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=599</id>
		<title>FIND basics</title>
		<link rel="alternate" type="text/html" href="https://nosqlzoo.net/w/index.php?title=FIND_basics&amp;diff=599"/>
		<updated>2015-07-28T08:40:44Z</updated>

		<summary type="html">&lt;p&gt;40082593: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre class=setup&amp;gt;&lt;br /&gt;
#ENCODING&lt;br /&gt;
import io&lt;br /&gt;
import sys&lt;br /&gt;
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding=&#039;utf-16&#039;)&lt;br /&gt;
#MONGO&lt;br /&gt;
from pymongo import MongoClient&lt;br /&gt;
client = MongoClient()&lt;br /&gt;
client.progzoo.authenticate(&#039;scott&#039;,&#039;tiger&#039;)&lt;br /&gt;
db = client[&#039;progzoo&#039;]&lt;br /&gt;
#PRETTY&lt;br /&gt;
import pprint&lt;br /&gt;
pp = pprint.PrettyPrinter(indent=4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Working with the &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; collection of countries==&lt;br /&gt;
  &amp;lt;p&amp;gt;These examples introduce NoSQL using MonogDB and PyMongo under Python3.4. We will be using the find() command and basic comparison functions on the collection &#039;&#039;&#039;world&#039;&#039;&#039;:&amp;lt;/p&amp;gt;&lt;br /&gt;
For help on this [[FIND examples| click here]]&lt;br /&gt;
&amp;lt;div class=&#039;extra_space&#039; style=&#039;width:1em; height:6em;&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;find()&amp;lt;/code&amp;gt; to return the 21st document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the 21st document in world&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre class=def&amp;gt;&lt;br /&gt;
pp.pprint(&lt;br /&gt;
    db.world.find()&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=ans&amp;gt;&lt;br /&gt;
pp.pprint(db.world.find()[20])&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;sort()&amp;lt;/code&amp;gt; to find the last document in world&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the last document of world&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find().sort(&amp;quot;$natural&amp;quot;, -1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;List all the countries in the continent of Asia&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;continent&amp;quot;:&amp;quot;Asia&amp;quot;}, {&amp;quot;_id&amp;quot;:0, &amp;quot;name&amp;quot;:1})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;How many countries are there in Europe that start with the letter &amp;quot;L&amp;quot;&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=ans&amp;gt;&lt;br /&gt;
print(db.world.count({&amp;quot;$and&amp;quot;:[{&amp;quot;continent&amp;quot;:&amp;quot;Europe&amp;quot;},{&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^S&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;div class=q data-lang=&amp;quot;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the capital cities for countries with a population of over 70 million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:70000000}},{&amp;quot;capital&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the countries that have a population of over 100 million or less than a million&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$or&amp;quot;:[{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:1000000}},{&amp;quot;population&amp;quot;:{&amp;quot;$gt&amp;quot;:100000000}}]}, {&amp;quot;name&amp;quot;:1, &amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of countries beginning with &amp;quot;U&amp;quot; that are outside of Europe and North America&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;name&amp;quot;:{&#039;$regex&#039;:&amp;quot;^U&amp;quot;}},{&amp;quot;continent&amp;quot;:{&amp;quot;$nin&amp;quot;:[&amp;quot;Europe&amp;quot;, &amp;quot;North America&amp;quot;]}}]},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Find the names of all countries that contain a white space &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^.*\s.*$&amp;quot;}},{&amp;quot;name&amp;quot;:1,&amp;quot;_id&amp;quot;:0})))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Which country out of [China, Russia, United States] has the largest population&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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;name&amp;quot;:{&amp;quot;$in&amp;quot;:[&amp;quot;China&amp;quot;, &amp;quot;Russia&amp;quot;, &amp;quot;United States&amp;quot;]}}).sort(&amp;quot;population&amp;quot;,-1).limit(1)))&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;py3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=strong&amp;gt;Show the top 5 capitals and populations for capital cities starting with the letter &amp;quot;M&amp;quot; that have a population of less than 3 million  &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=ans&amp;gt;&lt;br /&gt;
pp.pprint(list(db.world.find({&amp;quot;$and&amp;quot;:[{&amp;quot;capital&amp;quot;:{&amp;quot;$regex&amp;quot;:&amp;quot;^M&amp;quot;}},{&amp;quot;population&amp;quot;:{&amp;quot;$lt&amp;quot;:3000000}}]}, {&amp;quot;_id&amp;quot;:0, &amp;quot;capital&amp;quot;:1, &amp;quot;population&amp;quot;:1}).sort(&amp;quot;population&amp;quot;,-1).limit(5)))&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>40082593</name></author>
	</entry>
</feed>