Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error while sorting in pymongo

In mongoshell, the below statement is working fine:

db.grades.find({'type':'homework'}).sort({$score:1})

But when I am trying to do same in pymongo, i am facing an error:

itr= collection.find({'type':'homework'}).sort(['score', pymongo.ASCENDING])

Error:

    for (key, value) in index_list:
    ValueError: too many values to unpack
like image 734
Praveenks Avatar asked Feb 14 '23 03:02

Praveenks


1 Answers

Yes, this always confuses me too.

You need to pass into sort a list of pairs, and you're passing a list of length 2 (i.e. a pair).

This should work:

itr= collection.find({'type':'homework'}).sort([ ['score', pymongo.ASCENDING] ])

The idea is that you can pass more than one pair in your list (for secondary order, etc.).

like image 196
shx2 Avatar answered Feb 24 '23 18:02

shx2