Question

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
Was it helpful?

Solution

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.).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top