2013-07-17 124 views
1

有人知道我該如何按兩個值排序我的表?MongoDB按兩列排序

例如:

我有了列 「_id」, 「標題」, 「鏈接」 統計的集合, 「統計」, 「範圍」。 「統計數據」列可以包含數值['duration','pace','distance'], 「範圍」列可以包含像0-10km,20-20min等依賴於統計值的數據。

我想按統計排序,然後按範圍排序。

This link

在上面的鏈接,我的統計分類,現在我想通過一系列排序爲統計的每個值!

我當前的代碼:

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

您可以添加您當前的查詢嗎? –

+0

我已添加! –

+0

我認爲詹姆斯的答案在下面大概涵蓋了它:) –

回答

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}) 
+0

Tnx男人!這是正確的! –

0

你需要使用的東西,是有序的,在這種情況下,陣列的元組,如:

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

因爲,當然,python dicts沒有排序。我相信這應該起作用。