06_python操作mongodb
时间:2019-09-18
本文章向大家介绍06_python操作mongodb,主要包括06_python操作mongodb使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
面向过程
# 用Python操作 MongoDB数据库
# python 连接MongoDB数据库要用到 pymongo 模块
import pymongo
# 1. 建立连接
client = pymongo.MongoClient() # 建立客户端连接
# 2. 指定数据库
db = client['python37']
# 3. 指定集合
my_col = db['student']
# 文档操作 (数据的增删改查)
# 增
# my_col.insert_one({'name':'long', 'age': 18, 'sex': 'M'}) # 插入一条数据
# my_col.insert_many([ # 增加多条数据
# {'name': 'cheng', 'age': 19, 'sex': 'M'},
# {'name': 'yan', 'age': 18, 'sex': 'F'},
# {'name': 'love', 'age': 17, 'sex': 'F'},
# {'name': 'yellow', 'age': 20},
# ])
# 查
res = my_col.find_one() # 只拿第一条
print(res)
res = my_col.find() # 拿到所有的数据
# print(res) # 一个地址, 可以迭代的对象
# for i in res:
# print(i)
# 改
# my_col.update_one({'name': 'love'}, {'$set': {'name': 'greenyellow'}}) # 修改一条数据
my_col.update_many({'name': 'yan'}, {'$set': {'name': 'yanyan'}}) # 修改满足条件的所有数据
# 删
# res = my_col.delete_one({'name': 'greenyellow'}) # 删除一个并返回
res = my_col.delete_many({'name': 'cheng'}) # 删除满足条件的所有数据
print(res) #
面向对象
import pymongo
"""
find_one() find()
insert_one() insert_many()
update_one() update_many()
delete_one() delete_many()
"""
class MyMongoDBWrapper(object):
"""把pymongo操作mongodb数据库的 '增删除改查' 方法封装成一个类中的方法"""
def __init__(self, host, port, db):
"""初始化"""
# 1. 连接
# self.client = pymongo.MongoClient(host='192.168.0.1', port='27017')
self.client = pymongo.MongoClient(host=host, port=port)
# 2. 指定数据库
self.db = self.client[db]
def insert(self, col='stu', data={}): # data默认为字典
"""插入数据"""
col = self.db[col] # 指定要为哪个集合插入数据
if type(data) == dict: # 如果传入的数据是一个字典,则说明是插入一条数据
col.insert_one(data)
elif type(data) == list: # 是一个列表, 则说明要插入多条数据
col.insert_many(data)
else:
# return "不好意思,你插入数据的格式不对,请重试"
print('不好意思,你插入数据的格式不对,请检查好后重试')
exit()
def find(self, if_data=None, col='stu',find_one=True): # find_one=True 默认查找一条
"""查找"""
col = self.db[col]
if find_one:
res = col.find_one(if_data)
return res
else:
res = col.find(if_data)
return res
def update(self, col='stu', update_one=True, if_data={}, new_data={}):
"""修改, # 更新"""
col = self.db[col]
if update_one:
col.update_one(if_data, {'$set': new_data})
else:
col.update_many(if_data, {'$set': new_data})
def delete(self, col='stu', if_data={}, delete_one=True):
"""删除"""
col = self.db[col]
if delete_one:
col.delete_one(if_data)
else:
col.delete_many(if_data)
if __name__ == '__main__':
mymongodb = MyMongoDBWrapper(host='192.168.0.7', port=27017, db='py3')
# 1. 增
doc = {'long': 'long', 'age': 18, 'sex': 'M'}
mymongodb.insert(col='stu2', data=doc) # 插入一条数据, 如果不指定col, 则默认使用 col='stu'
docs = [
doc,
{'name': 'qiye', 'age': 45, 'sex': 'M'},
{'name': 'cheng', 'age': 20, 'sex': 'F'}
]
mymongodb.insert(data=docs) # 不指定col, 所以会为默认的集合 stu 插入多条数据
# 2. 查
# mymongodb.find(if_data={'age': 18}) # 查找满足条件的第一条数据
res = mymongodb.find() # 查找第一条数据, stu集合
print(res)
res = mymongodb.find(find_one=False) # 查找所有数据, 没有指定, 也是stu用的stu集合
for i in res:
print(i)
# 3. 改
mymongodb.update(col='stu2', if_data={'name': 'long'}, new_data={'name': 'long2'}) # 修改一条
mymongodb.update(col='stu2', update_one=False, if_data={'name': 'long'}, new_data={'name': 'long3', 'age': 23, 'prrtty': 'Yes'}) # 修改所有满足条件的数据
# 4. 删
mymongodb.delete(col='stu2', if_data={'name': 'long2'}) # 删除一条
mymongodb.delete(col='stu2', if_data={'name': 'long3'}, delete_one=False) # 删除所有满足条件的
原文地址:https://www.cnblogs.com/nichengshishaonian/p/11540116.html
- 可用性更高:设计优秀的MySQL和Percona XtraDB集群
- 如何使用scikit-learn在Python中生成测试数据集
- OpenStack Neutron之持续测试
- 干货丨 用 Python 进行股票分析
- 小故事:架构师需要做什么?
- 浅谈用Python计算文本BLEU分数
- Fourinone如何实现并行计算和数据库引擎
- 在Python中用一个长短期记忆网络来演示记忆
- CDA数据分析师学习之路第3期 | Spark RDD的转换操作举例
- 通过Temboo实现从Arduino获取雅虎天气信息
- 自动化模式中的MySQL
- 通过Pandas实现快速别致的数据分析
- R语言中的非线性分类
- 用SPSS做数据分析?先弄懂SPSS的基础知识吧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法