pymongo按日期排序

时间:2015-06-04 11:31:29

标签: python mongodb 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

这里发生了什么?是不是可以按日期排序?

2 个答案:

答案 0 :(得分:15)

这不是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)
]):

答案 1 :(得分:4)

在PyMongo中,如果.sort('date',pymongo.DESCENDING)出现错误,你也可以试试这个

db.posts.find().sort('date', -1)