Difference between revisions of "FIND Tutorial"
Line 3: | Line 3: | ||
[[FIND examples]] are available. | [[FIND examples]] are available. | ||
<div class='extra_space' style='width:1em; height:6em;'></div> | <div class='extra_space' style='width:1em; height:6em;'></div> | ||
+ | ==Show Germany== | ||
<div class=q data-lang="mongo"> | <div class=q data-lang="mongo"> | ||
Use <code>find()</code> to show the details of Germany | Use <code>find()</code> to show the details of Germany | ||
Line 14: | Line 15: | ||
</div> | </div> | ||
+ | ==Eurasia - is that even a thing?== | ||
<div class=q data-lang="mongo"> | <div class=q data-lang="mongo"> | ||
You can use .pretty() to make the output more readable. | You can use .pretty() to make the output more readable. | ||
Line 21: | Line 23: | ||
</pre> | </pre> | ||
<div class=ans> | <div class=ans> | ||
− | db.world.find({ | + | db.world.find({continent:"Eurasia"}).pretty() |
</div> | </div> | ||
</div> | </div> | ||
+ | ==Find an area== | ||
<div class=q data-lang="mongo"> | <div class=q data-lang="mongo"> | ||
You can test numbers as well as strings | You can test numbers as well as strings | ||
Line 32: | Line 35: | ||
</pre> | </pre> | ||
<div class=ans> | <div class=ans> | ||
− | db.world.find({ | + | db.world.find({area:43094}).pretty() |
</div> | </div> | ||
</div> | </div> | ||
+ | ==Using $gt== | ||
<div class=q data-lang="mongo"> | <div class=q data-lang="mongo"> | ||
You can use $gt and $lt to compare numbers and strings ('''$gt''' is greater than, '''$lt''' is less than) | You can use $gt and $lt to compare numbers and strings ('''$gt''' is greater than, '''$lt''' is less than) | ||
Line 41: | Line 45: | ||
<pre class=def> | <pre class=def> | ||
db.world.find( | db.world.find( | ||
− | {area:{ | + | {area:{$gt:9000000}}, |
{name:1,_id:0} | {name:1,_id:0} | ||
).pretty() | ).pretty() | ||
</pre> | </pre> | ||
<div class=ans> | <div class=ans> | ||
− | db.world.find({ | + | db.world.find({population:{$gt:250000000}},{name:1,_id:0}).pretty() |
</div> | </div> | ||
</div> | </div> | ||
− | + | ==After S== | |
<div class=q data-lang=mongo"> | <div class=q data-lang=mongo"> | ||
<p class=strong>List the countries in Europe that come after "S" in the alphabet</p> | <p class=strong>List the countries in Europe that come after "S" in the alphabet</p> | ||
Line 62: | Line 66: | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | ==Name and Capital== |
− | <p class=strong>Find the capital cities for countries with a population of over 70 million</p> | + | <div class=q data-lang="mongo"> |
+ | <p class=strong>Find the name and capital cities for countries with a population of over 70 million</p> | ||
<pre class=def> | <pre class=def> | ||
</pre> | </pre> | ||
<div class=ans> | <div class=ans> | ||
− | pp.pprint(list(db.world.find({ | + | pp.pprint(list(db.world.find({population:{$gt:70000000}},{capital:1,name:1,_id:0}))) |
</div> | </div> | ||
</div> | </div> |
Revision as of 17:16, 13 November 2015
Contents
Working with the world
collection of countries
This tutorial introduces NoSQL using MonogDB and PyMongo under Python3.4. We will be using the find()
command and comparison functions on the collection world which contains details of around 250 countries of the world:
FIND examples are available.
Show Germany
Use find()
to show the details of Germany
Show Germany instead of France
db.world.find({name:'France'})
db.world.find({name:'Germany'})
Eurasia - is that even a thing?
You can use .pretty() to make the output more readable.
List all the countries in the continent of "Eurasia"
db.world.find({name:'Germany'}).pretty()
db.world.find({continent:"Eurasia"}).pretty()
Find an area
You can test numbers as well as strings
Find the country with an area of exactly 43094
db.world.find({gdp:3425956000000}).pretty()
db.world.find({area:43094}).pretty()
Using $gt
You can use $gt and $lt to compare numbers and strings ($gt is greater than, $lt is less than)
Show each country with a population of over 250000000
db.world.find( {area:{$gt:9000000}}, {name:1,_id:0} ).pretty()
db.world.find({population:{$gt:250000000}},{name:1,_id:0}).pretty()
After S
List the countries in Europe that come after "S" in the alphabet
db.world.find({population:{$gt:80000000}, continent:"Europe"}, {name:1, _id:0})
Name and Capital
Find the name and capital cities for countries with a population of over 70 million
pp.pprint(list(db.world.find({population:{$gt:70000000}},{capital:1,name:1,_id:0})))
Find the countries that have a population of over 100 million or less than a million
pp.pprint(list(db.world.find({"$or":[{"population":{"$lt":1000000}},{"population":{"$gt":100000000}}]}, {"name":1, "_id":0})))
Find the names of countries beginning with "U" that are outside of Europe and North America
pp.pprint(list(db.world.find({"$and":[{"name":{'$regex':"^U"}},{"continent":{"$nin":["Europe", "North America"]}}]},{"name":1,"_id":0})))
Find the names of all countries that contain a white space
pp.pprint(list(db.world.find({"name":{"$regex":"^.*\s.*$"}},{"name":1,"_id":0})))
Which country out of China, Russia, and the United States has the largest population.
You might want to use Sort and limit to get the answer.
pp.pprint(list(db.world.find({"name":{"$in":["China", "Russia", "United States"]}}).sort("population",-1).limit(1)))
Use Sort to find the last document in world
Show the last document of world
pp.pprint(list(db.world.find().sort("$natural", -1))[0])
Show capital and population for the top 5 capital cities starting with the letter "M" that have a population of less than 3 million
pp.pprint(list(db.world.find({"$and":[{"capital":{"$regex":"^M"}},{"population":{"$lt":3000000}}]}, {"_id":0, "capital":1, "population":1}).sort("population",-1).limit(5)))
Show all the capitals for countries that start with the same letter as their continent
find({"$where": " boolean expression "})
pp.pprint(list(
db.world.find( {"$where":"this.name[0]==this.continent[0]"}, {"_id":0, "capital":1})
))