排序价格 mongodb

Sorting price in 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'
}]

请帮忙!

这就是字符串的排序方式。如果您希望它被排序为数字而不是字符串,您应该将 Price 字段更改为数字。 Mongo 无法假设它是一个数字,但它不是。

只需将以下内容放在代码末尾即可;

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