2017-08-30 54 views
0

我很難按價格排序數據。 我想炫耀基於價格的價格 我試過了,但結果並不如我預期的那樣。mongodb的分類價格

代碼測試:

from pymongo import MongoClient 
client = MongoClient().ecome 
col = client['post_product'] 

data = [] 
GetData = col.find({'Category':'Handphone'}).sort([('Price', pymongo.ASCENDING)]).limit(10) 
for x in GetData: 
    listed = dict(
     title=x['Title'], 
     price=x['Price'] 
    ) 
    data.append(listed) 

print data 

和結果:

[{ 
    'price': '10', 
    'title': 'tresemse' 
}, { 
    'price': '200', 
    'title': 'muaral winner' 
}, { 
    'price': '30', 
    'title': 'troboca' 
}, { 
    'price': '400', 
    'title': 'brek yule' 
}, { 
    'price': '50', 
    'title': 'moun yus' 
}] 

我所期望的結果是:

[{ 
    'price': '10', 
    'title': 'tresemse' 
}, { 
    'price': '30', 
    'title': 'troboca' 
}, { 
    'price': '50', 
    'title': 'moun yus' 
}, { 
    'price': '200', 
    'title': 'muaral winner' 
}, { 
    'price': '400', 
    'title': 'brek yule' 
}] 

請幫助!

+1

的可能的複製[MongoDB的查詢中排序?(https://stackoverflow.com/questions/45953079/mongodb-sort-within-the-query) – felix

+0

@felix,顯然不是,這種情況下是根據價格 –

+0

的價值排序數據這是同樣的問題,你的'價格'字段是一個字符串,因此它被排序爲一個字符串,即如果是字母順序 – felix

回答

1

這就是字符串的排序方式。您應該將價格字段更改爲數字,如果您希望它被分類爲數字而不是字符串。如果不是,Mongo不可能認爲它是一個數字。

+0

好,非常感謝你的回答。 我會嘗試將其轉換爲整數。 –

0

只是把下面的代碼放在代碼的末尾;

data.sort(key = lambda item: float(item["price"]))