技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

Python操作MongoDB詳解及實(shí)例教程

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2017-10-04 00:02┆點(diǎn)擊:

import pymongo # 創(chuàng)建連接 client = pymongo.MongoClient(host="10.0.2.38", port=27017) # 連接probeb庫(kù) db = client['probeb'] # 打印庫(kù)中所有集合名稱 print(db.collection_names()) # 連接到test1這個(gè)集合 collection = db.test1 # 這條命令是查找rssi大于srssi小于erssi,stime大于stime,小于etime的數(shù)據(jù)以stime倒敘排列 sumdata = collection.find({"RSSI": {"$gt": int(srssi), "$lt": int(erssi)}, "stime": {"$gt": stime, "$lt": etime}}).sort([('stime', -1)]) #這條命令是查找rssi大于srssi小于erssi,stime大于stime小于etime 且mac等于search或者dmac等于search(search是個(gè)變量, "$options":"i"是為了不區(qū)分search內(nèi)容的大小寫(xiě))的數(shù)據(jù),以stime倒敘排列 sumdata = collection.find({"RSSI": {"$gt": int(srssi), "$lt": int(erssi)}, "stime": {"$gt": stime, "$lt": etime}, "$or": [{"mac": {"$regex": search, "$options":"i"}}, {"dmac": {"$regex": search,"$options":"i"}}]}).sort([('stime', -1)]) # 現(xiàn)在查詢的結(jié)果賦值給sumdata,如果想查出具體數(shù)據(jù),可以使用for循環(huán) for data in sumdata: print(data) # 注意:在使用python操作MongoDB進(jìn)行排序的時(shí)候,不能使用db.test1.find().sort({"name" : 1, "age" : 1}) # 否則會(huì)遇到如下異常: # TypeError: if no direction is specified, key_or_list must be an instance of list # 解決方法: # db.tes1t.find().sort([("name", 1), ("age" , 1)]) # 原因:在python中只能使用列表進(jìn)行排序,不能使用字典

3、插入數(shù)據(jù)

import datetime

# 插入數(shù)據(jù) account = {"AccountID":1,"UserName":"libing",'date':datetime.datetime.now()} accounts = [{"AccountID":2,"UserName":"liuw",'date':datetime.datetime.now()}, {"AccountID":3,"UserName":"urling",'date':datetime.datetime.now()}]#每條記錄插入時(shí)間都 collections.insert(account)

4、總而言之,python操作MongoDB和MongoDB的命令操作大同小異。只要熟練使用MongoDB的命令操作,那么用pymongo操作就不是問(wèn)題。