Python操作MongoDB详解及实例


Posted in Python onMay 18, 2017

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

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

Python 相关文章推荐
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
详解Python中的条件判断语句
May 14 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
Expected conditions模块使用方法汇总代码解析
Aug 13 Python
python3中编码获取网页的实例方法
Nov 16 Python
Python调用Redis的示例代码
Nov 24 Python
python 安全地删除列表元素的方法
Mar 16 Python
Python 迭代器与生成器实例详解
May 18 #Python
Python字符串处理实例详解
May 18 #Python
Python进阶-函数默认参数(详解)
May 18 #Python
Python装饰器实现几类验证功能做法实例
May 18 #Python
如何用itertools解决无序排列组合的问题
May 18 #Python
详解使用python的logging模块在stdout输出的两种方法
May 17 #Python
Python中正则表达式详解
May 17 #Python
You might like
PHP与javascript的两种交互方式
2006/10/09 PHP
PHP 输出缓存详解
2009/06/20 PHP
php printf输出格式使用说明
2010/12/05 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
再谈JavaScript线程
2015/07/10 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
详解js静态资源文件请求的处理
2017/08/01 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
python在指定目录下查找gif文件的方法
2015/05/04 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
python 反向输出字符串的方法
2018/07/16 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
和解协议书
2014/04/16 职场文书
大二学习计划书范文
2014/04/27 职场文书
小学家长通知书评语
2014/12/31 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
python 常用的异步框架汇总整理
2021/06/18 Python
python中validators库的使用方法详解
2022/09/23 Python