为了账号安全,请及时绑定邮箱和手机立即绑定

数据库字段排序问题

数据库字段排序问题

慕工程0101907 2019-02-25 14:21:08
1、数据库{'cishu': 372, 'title': '镇中心小学厕所问题'}{'cishu': 388, 'title': '私搭乱建'}{'cishu': 222, 'title': '新生儿落户收费么?'}{'cishu': 341, 'title': '44路车不按时间发车越来越严重'} 2、我想以cishu为参考做个排序 for i in info.find({},{'title':1,'_id':0}).sort({"cishu":-1}): print(i) 我写了这个进行排序,总是报错,刚初学,不知道怎么做这个排序。。。报错内容 TypeError: if no direction is specified, key_or_list must be an instance of list 3、弄不明白之后,然后我尝用管道进行排序,倒是出来了结果,只有次数,不会把title弄出来。。。 def cishu(): pipeline = [ {'$group': {'_id':'$cishu'}}, {'$sort':{'_id':-1}}, {'$limit':100} ] for i in item_info.aggregate(pipeline): data = { 'name': i['_id'], } print(i) 出来的结果是{'_id': 388}{'_id': 372}{'_id': 341}{'_id': 222} 我想要的结果是 {'cishu': 388, 'title': '私搭乱建'}{'cishu': 372, 'title': '镇中心小学厕所问题'}{'cishu': 341, 'title': '44路车不按时间发车越来越严重'}{'cishu': 222, 'title': '新生儿落户收费么?'} 我怎么让他全面的出来结果。。。小白苦恼,请大侠帮忙看看
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

sort里面这样写[("cishu",pymongo.DESCENDING)],如果多值排序的话[("key1",pymongo.DESCENDING),("key2":pymongo.DESCENDING)] . 详细见代码

from pymongo import MongoClient
import pymongo
client = MongoClient()
#创建连接
conn = MongoClient('127.0.0.1', 27017)
#连接数据库
db = conn.qwer
datas = db.test.find({}, {"cishu":1,"title":1,"_id":0}).sort([("cishu",pymongo.DESCENDING)])
for data in datas:
    print(data)
查看完整回答
反对 回复 2019-03-04
?
倚天杖

TA贡献1828条经验 获得超3个赞

代碼:

info = [
    {'cishu': 372, 'title': '镇中心小学厕所问题'},
    {'cishu': 388, 'title': '私搭乱建'},
    {'cishu': 222, 'title': '新生儿落户收费么?'},
    {'cishu': 341, 'title': '44路车不按时间发车越来越严重'}
]

for item in sorted(info, key=lambda dic: dic['cishu'], reverse=True):
    print(item)

結果:

{'cishu': 388, 'title': '私搭乱建'}
{'cishu': 372, 'title': '镇中心小学厕所问题'}
{'cishu': 341, 'title': '44路车不按时间发车越来越严重'}
{'cishu': 222, 'title': '新生儿落户收费么?'}

我回答過的問題: Python-QA

查看完整回答
反对 回复 2019-03-04
?
森林海

TA贡献2011条经验 获得超2个赞

为什么不在查询数据库的时候做排序呢?

select * from xxx order by cishu desc
查看完整回答
反对 回复 2019-03-04
  • 3 回答
  • 0 关注
  • 549 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信