Difference between revisions of "FIND Tutorial"
(Created page with "<pre class="setup"> #ENCODING import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-16') #MONGO from pymongo import MongoClient client = MongoCli...") |
|||
(53 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Working with the <code>world</code> collection of countries== | ==Working with the <code>world</code> collection of countries== | ||
− | + | <p> | |
+ | This tutorial introduces NoSQL using MongoDB. We will be using the <syntaxhighlight lang="JavaScript" inline>find()</syntaxhighlight > | ||
+ | command and comparison functions on the collection '''world''' which contains details of around 250 countries of the world: | ||
+ | </p> | ||
[[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> | ||
− | <div class=q data-lang=" | + | ==Show Germany== |
− | Use < | + | <div class="q" data-lang="mongo"> |
− | <p class=strong>Show | + | Use <syntaxhighlight lang="JavaScript" inline>find()</syntaxhighlight> to show the details of Germany. |
− | <pre class=def> | + | <p class="strong"> |
− | + | Show Germany instead of France. | |
− | + | </p> | |
− | + | <pre class="def"><nowiki>db.world.find({name: 'France'});</nowiki></pre> | |
− | </pre> | + | <pre class="ans"><nowiki>db.world.find({name: 'Germany'}); </nowiki></pre> |
− | < | ||
− | |||
− | </ | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | ==Eurasia== |
− | <p class=strong>List all the countries in the continent of | + | <div class="q" data-lang="mongo"> |
− | <pre class=def> | + | You can use <syntaxhighlight lang="JavaScript" inline>.pretty()</syntaxhighlight> to make the output more readable. |
− | + | <p class="strong"> | |
− | + | List all the countries in the continent of "Eurasia". | |
− | ) | + | </p> |
− | </pre> | + | <pre class="def"><nowiki>db.world.find({name: 'Germany'}).pretty();</nowiki></pre> |
− | < | + | <pre class="ans"><nowiki>db.world.find({continent: "Eurasia"}).pretty(); </nowiki></pre> |
− | |||
− | </ | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | ==Find an area== |
− | <p class=strong> | + | <div class="q" data-lang="mongo"> |
− | <pre class=def> | + | You can test numbers as well as strings. |
− | </pre> | + | <p class="strong"> |
− | < | + | Find the country with an area of exactly 43094. |
− | + | </p> | |
− | + | <pre class="def"><nowiki>db.world.find({gdp: 3425956000000}).pretty();</nowiki></pre> | |
− | + | <pre class="ans"><nowiki>db.world.find({area: 43094}).pretty(); </nowiki></pre> | |
− | ) | ||
− | </ | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | ==Using $gt== |
− | <p class=strong> | + | <div class="q" data-lang="mongo"> |
− | <pre class=def> | + | You can use '''$gt''' (greater than) and '''$lt''' (less than) to compare numbers and strings. |
− | </pre> | + | <p class="strong"> |
− | < | + | Show each country with a population of over 250000000 <br/> |
− | + | Sort the results alphabetically. | |
− | </ | + | </p> |
+ | <p>You will need to use a [[FIND_Examples#Using_a_projection_with_find|projection]] to answer this question.</p> | ||
+ | <pre class="def"><nowiki> | ||
+ | db.world.find( | ||
+ | {area: {$gt: 9000000}}, | ||
+ | {name: 1, _id: 0} | ||
+ | ).sort( | ||
+ | {name: 1} | ||
+ | ).pretty();</nowiki></pre> | ||
+ | <pre class="ans"><nowiki>db.world.find({population:{$gt:250000000}},{name:1,_id:0}).sort({name: 1}).pretty();</nowiki></pre> | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | ==After S== |
− | <p class=strong> | + | <div class="q" data-lang="mongo"> |
− | <pre class=def> | + | Greater than and less than comparisons can also be applied to strings. |
− | </pre> | + | <p class="strong"> |
− | < | + | List the countries that come after "S" in the alphabet. |
− | + | </p> | |
− | </ | + | <pre class="def"><nowiki>db.world.find();</nowiki></pre> |
+ | <pre class="ans"><nowiki>db.world.find({name:{$gt:"S"}},{name:1,_id:0}).pretty(); </nowiki></pre> | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | ==Name and Capital== |
− | <p class=strong>Find the | + | <div class="q" data-lang="mongo"> |
− | <pre class=def> | + | <p class="strong"> |
− | </pre> | + | Find the name and capital cities for countries with a population of over 70 million. |
− | < | + | </p> |
− | + | <pre class="def"><nowiki>db.world.findOne();</nowiki></pre> | |
− | </ | + | <pre class="ans"><nowiki>db.world.find({population:{$gt:70000000}},{name:1,capital:1,_id:0}).pretty();</nowiki></pre> |
</div> | </div> | ||
− | <div class=q data-lang= | + | ==Using $or== |
− | <p class=strong>Find the | + | <div class=q data-lang=mongo> |
− | <pre class=def> | + | <p class="strong"> |
− | + | Find the countries that have a population that is over 200 million or less than 20,000. | |
− | < | + | </p> |
− | + | <pre class="def"><nowiki> | |
− | + | db.world.find( | |
− | + | {$or: [ | |
− | + | {name: 'Germany'}, | |
− | + | {name: 'France'} | |
− | + | ]}, | |
− | + | {name: 1, population: 1, _id: 0} | |
− | + | );</nowiki></pre> | |
− | + | <pre class="ans"><nowiki>db.world.find({$or:[{population:{$gt:200000000}},{population:{$lt:20000}}]},{name:1,population:1,_id:0})</nowiki></pre> | |
− | |||
− | |||
− | </ | ||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | </pre | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> |
Latest revision as of 19:29, 11 December 2020
Contents
Working with the world
collection of countries
This tutorial introduces NoSQL using MongoDB. 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
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 (greater than) and $lt (less than) to compare numbers and strings.
Show each country with a population of over 250000000
Sort the results alphabetically.
You will need to use a projection to answer this question.
db.world.find( {area: {$gt: 9000000}}, {name: 1, _id: 0} ).sort( {name: 1} ).pretty();
db.world.find({population:{$gt:250000000}},{name:1,_id:0}).sort({name: 1}).pretty();
After S
Greater than and less than comparisons can also be applied to strings.
List the countries that come after "S" in the alphabet.
db.world.find();
db.world.find({name:{$gt:"S"}},{name:1,_id:0}).pretty();
Name and Capital
Find the name and capital cities for countries with a population of over 70 million.
db.world.findOne();
db.world.find({population:{$gt:70000000}},{name:1,capital:1,_id:0}).pretty();
Using $or
Find the countries that have a population that is over 200 million or less than 20,000.
db.world.find( {$or: [ {name: 'Germany'}, {name: 'France'} ]}, {name: 1, population: 1, _id: 0} );
db.world.find({$or:[{population:{$gt:200000000}},{population:{$lt:20000}}]},{name:1,population:1,_id:0})