Using .sort with PyMongo
With PyMongo, when I try to retrieve objects sorted by their 'number' and 'date' fields like this:
db.test.find({"number": {"$gt": 1}}).sort({"number": 1, "date": -1})
I get this error:
TypeError: if no direction is specified, key_or_list must be an instance of list
What's wrong with my sort query?
Solution 1:
sort
should be a list of key-direction pairs, that is
db.test.find({"number": {"$gt": 1}}).sort([("number", 1), ("date", -1)])
The reason why this has to be a list is that the ordering of the arguments matters and dict
s are not ordered in Python < 3.6