Reputation: 1494
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
Upvotes: 4
Views: 1219
Reputation: 64368
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.).
Upvotes: 8