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
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.).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With