問 題
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': '新生兒落戶收費麼?'}
我怎麼讓他全面的出來結果。。。小白苦惱,請大俠幫忙看看
解決方案
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)
掃一掃關注IT屋
微信公衆号搜尋 “ IT屋 ” ,選擇關注與百萬開發者在一起