Python操作MongoDB详解及实例
Python操作MongoDB详解及实例
由于需要在页面展示MongoDB库里的数据,所以考虑使用python操作MongoDB,PyMongo模块是Python对MongoDB操作的接口包,所以首页安装pymongo。
1、安装命令
pipinstallpymongo
2、查询命令:
importpymongo
#创建连接
client=pymongo.MongoClient(host="10.0.2.38",port=27017)
#连接probeb库
db=client['probeb']
#打印库中所有集合名称
print(db.collection_names())
#连接到test1这个集合
collection=db.test1
#这条命令是查找rssi大于srssi小于erssi,stime大于stime,小于etime的数据以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是个变量,"$options":"i"是为了不区分search内容的大小写)的数据,以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)])
#现在查询的结果赋值给sumdata,如果想查出具体数据,可以使用for循环
fordatainsumdata:
print(data)
#注意:在使用python操作MongoDB进行排序的时候,不能使用db.test1.find().sort({"name":1,"age":1})
#否则会遇到如下异常:
#TypeError:ifnodirectionisspecified,key_or_listmustbeaninstanceoflist
#解决方法:
#db.tes1t.find().sort([("name",1),("age",1)])
#原因:在python中只能使用列表进行排序,不能使用字典
3、插入数据
importdatetime
#插入数据
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()}]#每条记录插入时间都
collections.insert(account)
4、总而言之,python操作MongoDB和MongoDB的命令操作大同小异。只要熟练使用MongoDB的命令操作,那么用pymongo操作就不是问题。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!