1

有人知道如何按两个值对表格进行排序吗?

例如 :

我有包含“_id”、“title”、“link”、“stats”、“range”列的统计信息集合。“统计”列可以包含值 ['duration','pace','distance'],“范围”列可以包含 0-10 公里、20-20 分钟等值,这取决于统计值。

我想按 stats 排序,然后按 range 排序。

这个链接

在上面的链接中,我按统计数据排序,现在我想按统计数据的每个值的范围排序!

我当前的代码:

guides = yield gen.Task(Guides.objects.find, query={}, limit=20,
                            sort={'stats': 1})
4

2 回答 2

0

您需要使用有序的东西,在这种情况下是数组元组,例如:

sort([("stats",pymongo.ASCENDING), ("range",pymongo.ASCENDING)])

因为,当然,python dicts 没有排序。我相信这应该有效。

于 2013-07-17T17:22:19.543 回答
0

要按多个字段对文档进行排序,您需要一个复合排序语句,理想情况下需要一个复合索引来支持它。

对于 MongoDB 中的复合索引,请参阅:http ://docs.mongodb.org/manual/tutorial/create-a-compound-index/

你的排序看起来像:

guides = yield gen.Task(Guides.objects.find, query={}, limit=20,
                        sort={'stats': 1, 'range': 1})
于 2013-07-17T16:14:51.160 回答