这里有新鲜出炉的 Python3 Cookbook 中文版,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 Python 操作 MongoDB 详解及实例的相关资料, 需要的朋友可以参考下
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 操作就不是问题。
来源: http://www.phperz.com/article/17/0528/335401.html