Actions

Sort: Difference between revisions

From NoSQLZoo

No edit summary
mNo edit summary
 
(8 intermediate revisions by 2 users not shown)
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="height:25em">
<div style="min-height:25em">
<code>sort()</code> is a cursor method that orders the results of a query.<br/>
<code>sort()</code> is a cursor method that orders the results of a query.<br/>
The aggregation framework provides the <code>$sort</code> operator, and <code>map_reduce</code> takes sort as a parameter that is applied to the input documents.<br/><br/>
The aggregation framework provides the <code>$sort</code> operator, and <code>mapReduce</code> takes sort as a parameter that is applied to the input documents.<br/><br/>
The syntax for <code>sort()</code> is <code>sort(<field>:<value>)</code> where 1 indicates ascending and -1 indicates descending.<br/>
The syntax for <code>sort()</code> is <code>sort({<field>:<value>, <field>:<value>, ...})</code> where '''1''' indicates ascending and '''-1''' indicates descending.<br/>
The order in which fields are specified dictates which fields are sorted first.<br/><br/>
The order in which fields are specified dictates which fields are sorted first.<br/><br/>
Python does not store key order for dicts, so instead of the mongo shell <code>{<field1>:<value>,<field2>:<value>}</code> use <code>[(<field1>,<value>), (<field2>,<value>)]</code>
</div>
</div>
<div class=q data-lang="py3">Sort all the documents in world by continent descending, then name ascending. Show only name and continent.
<div class="q nonum" data-lang="mongo">Sort all the documents in world by continent descending, then name ascending. Show only name and continent.
<pre class=def>
<pre class="def"><nowiki>db.world.find({}, {name: 1, continent: 1 ,_id: 0}).sort({"continent": -1, "name": 1});</nowiki></pre>
pp.pprint(list(
    db.world.find({},{"name":1,"continent":1,"_id":0}).sort([("continent",-1),("name",1)]):
))
 
</pre>
</div>
</div>

Latest revision as of 16:38, 18 July 2018

sort() is a cursor method that orders the results of a query.
The aggregation framework provides the $sort operator, and mapReduce takes sort as a parameter that is applied to the input documents.

The syntax for sort() is sort({<field>:<value>, <field>:<value>, ...}) where 1 indicates ascending and -1 indicates descending.
The order in which fields are specified dictates which fields are sorted first.

Sort all the documents in world by continent descending, then name ascending. Show only name and continent.
db.world.find({}, {name: 1, continent: 1 ,_id: 0}).sort({"continent": -1, "name": 1});
  • You have been served by: dill