2015-06-04 4 views
5

Я хочу, чтобы получить новые сообщения первыми, и попробуйте следующее:PyMongo сортировки по дате

db.posts.find({"date": {"$lt": tomorrow, "$gte": 
       today}}).sort({'date':pymongo.DESCENDING}) 

(без рода, я получаю старые сообщения первого штраф)

Я получаю эту ошибку

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

Что здесь происходит? Невозможно сортировать по дате?

ответ

12

Это неправильный формат параметров для функции sort. Правильный синтаксис будет выглядеть примерно так:

db.posts.find(...).sort('date',pymongo.DESCENDING) 

Вот ссылка на соответствующую документацию для функции sort: http://api.mongodb.org/python/current/api/pymongo/cursor.html#pymongo.cursor.Cursor.sort

Для сортировки по нескольким параметрам вы можете использовать следующий синтаксис:

db.posts.find(...).sort([ 
    ('date', pymongo.ASCENDING), 
    ('other_field', pymongo.DESCENDING) 
]): 
3

В PyMongo вы можете попробовать также это, если есть ошибка для .sort («дата», pymongo.DESCENDING)

db.posts.find().sort('date', -1) 
Смежные вопросы