Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

nested queries in pymongo using collection.find()

I would like to create a data base using mongodb and I am wondering how to query nested entities. For instance, let's assume we create a db as follows:

from pymongo import MongoClient
db = client['test_database']
collection = db['test_collection']
dat=[  
 { "id":110, "data":{"Country":"ES","Count":64}},
 { "id":112, "data":{"Country":"ES","Count":5}},
 { "id":114, "data":{"Country":"UK","Count":3}}
]
collection.insert(dat)

how can we query the records with "Country" values "ES"? Or alternatively how can we query the records with "Count" less than 6?

like image 780
George Monet Avatar asked Aug 29 '13 15:08

George Monet


1 Answers

You can use the dot notation supported by mongo.

db.test_collection.find({"data.Country": "ES"})
db.test_collection.find({"data.Count": {"$lt": 6}})

Check this stackoverflow question for the non-Python version.

like image 154
PattimusPrime Avatar answered Nov 15 '22 11:11

PattimusPrime