MongoDB按两列排序

MongoDB按两列排序,mongodb,tornado,pymongo,Mongodb,Tornado,Pymongo,有人知道如何按两个值对表进行排序吗 例如: 我有一些统计数据集合,其中包含“_id”、“title”、“link”、“stats”、“range”列。 “stats”列可以包含值['duration'、'pace'、'distance'], “范围”列可以由0-10公里、20-20分钟等级别组成,具体取决于统计值 我想按统计数据订购,然后按范围订购 在上面的链接中,我已经按统计数据排序,现在我想按统计数据的每个值的范围排序 我当前的代码: guides = yield gen.Task(Gui

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

例如:

我有一些统计数据集合,其中包含“_id”、“title”、“link”、“stats”、“range”列。 “stats”列可以包含值['duration'、'pace'、'distance'], “范围”列可以由0-10公里、20-20分钟等级别组成,具体取决于统计值

我想按统计数据订购,然后按范围订购

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

我当前的代码:

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

要按多个字段对文档进行排序,您需要一个复合排序语句,最好是一个支持该语句的复合索引

有关MongoDB中的复合索引,请参见:

您的排序将类似于:

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

您需要使用有序的东西,在本例中是数组的元组,如:

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

当然,因为python dict不是有序的。我相信这应该行。

你能补充一下你当前的问题吗?我想詹姆斯下面的回答涵盖了这一点:)