jis*_*isu 8 python timestamp mongodb
我在mongodb中有一堆文件,并且都有一个时间戳字段,时间戳存储为"1404008160".我想按照desc顺序对这个集合中的所有文档进行排序.我是这样做的:
sort = [('timestamp', DESCENDING)]
collection.find(limit=10).sort(sort)
Run Code Online (Sandbox Code Playgroud)
但是,我没有按顺序按时间戳排序结果.我在想它是因为时间戳被视为一个int字段.是否有解决此问题而不更改时间戳字段的数据类型.我已经在这个集合中有很多数据,所以不想经历导入/导出等麻烦.
另外 - 我想保留用于排序的负载到mongodb,而不是在python中以编程方式进行.
需要说明的是:时间戳不指示文档何时创建并且存储为字符串(例如"1404217646").
提前致谢.
Mar*_*cny 22
假设您的时间戳指示文档的创建时间,您可以_id改为使用.
_idmongo中的ObjectId存储您的时间戳.请尝试以下方法:
sort = {'_id': -1}
collection.find({}, limit=10).sort(sort)
Run Code Online (Sandbox Code Playgroud)
如果您仍想按自定义timestamp字段排序,则以下内容应该有效:
sort = {'timestamp': -1}
collection.find({}, limit=10).sort(sort)
Run Code Online (Sandbox Code Playgroud)
请注意,这假设您的所有timestamp字段都是相同的类型(string,int)
您可以使用以下降的顺序对集合进行排序.您的sort( { 'timestamp': -1 } )查询将是这样的
collection.find().sort( { 'timestamp': -1 } ).limit(10)
Run Code Online (Sandbox Code Playgroud)
如果您具有SQL知识,则可以在以下链接中比较两个查询
http://docs.mongodb.org/manual/reference/sql-comparison/
| 归档时间: |
|
| 查看次数: |
22790 次 |
| 最近记录: |