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

Difference between revisions of "Sort"

From NoSQLZoo
Jump to: navigation, search
m
 
(5 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="min-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});