web-dev-qa-db-ja.com

PyMongoで.sortを使用する

PyMongoで、次のように「番号」フィールドと「日付」フィールドでソートされたオブジェクトを取得しようとすると:

db.test.find({"number": {"$gt": 1}}).sort({"number": 1, "date": -1})

私はこのエラーを受け取ります:

TypeError: if no direction is specified, key_or_list must be an instance of list

並べ替えクエリの何が問題になっていますか?

95
KennyPowers

sortはキーと方向のペアのリストである必要があります。

db.test.find({"number": {"$gt": 1}}).sort([("number", 1), ("date", -1)])

これがリストでなければならない理由は、引数の順序が重要であり、dictsがPython <3.6

178
georg