python mongodb 操作_Python操作MongoDB详解及实例

本文介绍了如何使用Python的PyMongo模块与MongoDB交互,包括安装、查询、排序及插入数据的操作。通过实例展示了查询特定条件的数据并进行排序的方法,同时也指出了Python中排序的注意事项。最后,给出了插入单条和多条数据的例子。
摘要由CSDN通过智能技术生成

Python操作MongoDB详解及实例

由于需要在页面展示MongoDB库里的数据,所以考虑使用python操作MongoDB,PyMongo模块是Python对MongoDB操作的接口包,所以首页安装pymongo。

1、安装命令

pip install pymongo

2、查询命令:

import pymongo

# 创建连接

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循环

for data in sumdata:

print(data)

# 注意:在使用python操作MongoDB进行排序的时候,不能使用db.test1.find().sort({"name" : 1, "age" : 1})

# 否则会遇到如下异常:

# TypeError: if no direction is specified, key_or_list must be an instance of list

# 解决方法:

# db.tes1t.find().sort([("name", 1), ("age" , 1)])

# 原因:在python中只能使用列表进行排序,不能使用字典

3、插入数据

import datetime

# 插入数据

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操作就不是问题。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值