在mongoshell中,以下声明工作正常:
db.grades.find({'type':'homework'}).sort({$score:1})
但是当我在pymongo尝试做同样的事情时,我面临一个错误:
itr= collection.find({'type':'homework'}).sort(['score', pymongo.ASCENDING])
错误:
for (key, value) in index_list:
ValueError: too many values to unpack
答案 0 :(得分:8)
是的,这总是让我感到困惑。
您需要传递sort
对的列表,并且您传递的是长度为2的列表(即一对)。
这应该有效:
itr= collection.find({'type':'homework'}).sort([ ['score', pymongo.ASCENDING] ])
这个想法是你可以在列表中传递多个对(对于二级订单等)。