排序价格 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"]))
我在按价格排序数据时遇到问题。 我想根据价格的价值来炫耀价格 我已经尝试过了,但结果并不如我所料。
代码测试:
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"]))