在pymongo中排序时出错

Pra*_*nks 4 sorting mongodb pymongo mongodb-query

在mongoshell中,以下声明工作正常:

db.grades.find({'type':'homework'}).sort({$score:1})
Run Code Online (Sandbox Code Playgroud)

但是当我在pymongo尝试做同样的事情时,我面临一个错误:

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

错误:

    for (key, value) in index_list:
    ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

shx*_*hx2 8

是的,这总是让我感到困惑.

你需要传入sort 一个对列表,然后你传递一个长度为2的列表(即一对).

这应该工作:

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

这个想法是你可以在列表中传递多个对(对于二级订单等).