Cookies help us deliver our services. By using our services, you agree to our use of cookies. More information

FIND basics

From NoSQLZoo
Revision as of 08:40, 28 July 2015 by 40082593 (talk | contribs)
Jump to: navigation, search
#ENCODING
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-16')
#MONGO
from pymongo import MongoClient
client = MongoClient()
client.progzoo.authenticate('scott','tiger')
db = client['progzoo']
#PRETTY
import pprint
pp = pprint.PrettyPrinter(indent=4)

Working with the world collection of countries

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 world:

For help on this click here

Use find() to return the 21st document in world

Show the 21st document in world

pp.pprint(
    db.world.find()
)

pp.pprint(db.world.find()[20])

Use sort() to find the last document in world

Show the last document of world


pp.pprint(list(db.world.find().sort("$natural", -1).limit(1)))

List all the countries in the continent of Asia


pp.pprint(list(db.world.find({"continent":"Asia"}, {"_id":0, "name":1})))

How many countries are there in Europe that start with the letter "L"


print(db.world.count({"$and":[{"continent":"Europe"},{"name":{"$regex":"^S"}}]}))

Find the capital cities for countries with a population of over 70 million


pp.pprint(list(db.world.find({"population":{"$gt":70000000}},{"capital":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, United States] has the largest population


pp.pprint(list(db.world.find({"name":{"$in":["China", "Russia", "United States"]}}).sort("population",-1).limit(1)))

Show the top 5 capitals and populations for 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)))