Actions

Find: Difference between revisions

From NoSQLZoo

No edit summary
No edit summary
Line 1: Line 1:
<pre class=setup>
#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)
#CODE
from bson.code import Code
</pre>
{{TopTenTips}}
{{TopTenTips}}
<div style="min-height:25em">
<div style="min-height:25em">
Line 29: Line 13:
<code>find_one()</code> limits the result to one document.
<code>find_one()</code> limits the result to one document.
</div>
</div>
<div class="q nonum" data-lang="py3">
<div class="q nonum" data-lang="mongo">
<p class="strong>Show the capital city and population of France</p>
<p class="strong>Show the capital city and population of France</p>
<pre class=def>
<pre class=def>
print(db.world.find_one({"name":"France"},{"_id":0,"population":1,"capital":1}))
db.world.findOne({"name":"France"},{"_id":0,"population":1,"capital":1})
</pre>
</pre>
</div>
</div>

Revision as of 15:21, 3 December 2015

find() is used to query documents. It takes a query parameter and an optional projecetion parameter, and returns a cursor.
By default find() returns a cursor containing all the documents in the collection it is used on. This is the same as find({})

To get all the documents with a certain value, find(<field>:{"$eq":<value>}}) can be used, this can be simplified to find(<field>:<value>})
$eq can be replaced with other conditional operators such as $lt, $gt to perform less than or greater than comparisons.

To query nested documents, dot notation can be used, e.g. parent.child.field

The second parameter selects what fields to include. If the second parameter is not present the default action is to include all the fields in the result documents.
To hide a field, <field>:0 is used. The other fields won't be removed.
Using <field>:1 will include that field and hide all the others except the _id and other fields set to 1.
Passing an empty ({}) second parameter hides all fields except the _id field, to hide _id it has to be explicitly set to 0.

find_one() limits the result to one document.

Show the capital city and population of France

db.world.findOne({"name":"France"},{"_id":0,"population":1,"capital":1})
  • You have been served by: dill