python连接集群mongodb,封装增删改查
1.下载pymongo
pip install pymongo
2.直接上代码
[ini配置文件]
封装读ini省略~~
[db.py]
class Database(): def __init__(self):
self.cf = ConfigParser.ConfigParser()
self.mq = StringManipulation # 操作mongodb
def db_mongo(self,Positioning_mode,Location_element,Input_content): self._mongo_p= self.mq._mongo_path()
self.cf.read(self._mongo_p) db_host = self.cf.get(Positioning_mode, "host") operation_mr=['delete','select','update','insert'] get_mer=Location_element[0:6] count_str=Location_element.count('.') if Location_element and count_str == 2: get_me_list = Location_element.split('.') get_method=get_me_list[0] get_base=get_me_list[1] get_table=get_me_list[2]
if get_method in operation_mr and get_method and get_base and get_table: print(get_method)
print(get_base)
print(get_table) # 连接mongodb 目前只写了集群的连接方法
client = MongoClient(db_host) # 目标数据库
db=eval("client."+get_base) # 指定表
collection = eval("db."+get_table)
# 需要select
# Input_content=eval(Input_content)
if Input_content:
if get_method == 'select':
Input_content = eval(Input_content)
for get_select in collection.find(Input_content):
print("查询的数据成功:")
print(get_select) elif get_method == 'update':
Input_content=eval(Input_content)
# print(Input_content) get_find_dict=Input_content[0]
get_set_dict=Input_content[1]
collection.update(get_find_dict, {"$set":get_set_dict}) print("数据修改成功") # collection.update({"userName":"45852488@qq.com"},{"$set":{"code":"1783558010"}}) elif get_method =='insert': Input_content=eval(Input_content)
if isinstance(Input_content,tuple):
print(type(Input_content))
insert_list=[]
for i in Input_content:
insert_list.append(i)
collection.insert(insert_list)
# print(insert_list)
print("插入数据成功")
else:
collection.insert(Input_content)
print("插入数据成功") elif get_method =='delete':
print('delete')
Input_content=eval(Input_content)
if isinstance(Input_content,tuple):
for get_del_data in Input_content:
collection.remove(get_del_data)
print("数据已删除") else:
print("非t")
collection.remove(Input_content)
else:
print("操作关键字或数据库或表填写格式有误")
else:
print("操作关键字或数据库或表填写格式有误")
调用上面的方法增删改查
"""
#参数解释
Positioning_mode 对应配置文件[base_test],连接指定的mongodb
Location_element 参数格式: 操作方法.数据库.表
Input_content 增删该查的条件,mongo都是以字典的形式
""" # 删除数据
# Database().db_mongo('base_test','delete.mydb.email','{"userName" : "1435117266@qq.com"},{"userName" : "1435117288@qq.com"}')
#
# 插数据,多个或单个
# Database().db_mongo('base_test','insert.mydb.email','{"userName":"1435117288@qq.com","code" : "9999999999"},{"userName":"1435117266@qq.com","code" : "99999999999"}')
#
# 查询
# Database().db_mongo('base_test','select.mydb.email','{"userName":"45852488@qq.com"}')
#
#
# 修改
# Database().db_mongo('base_test','update.mydb.email','{"userName":"45852488@qq.com"},{"code":"1783558010","success":True}')
#
# {"code":"9999999999"}
#
python连接集群mongodb,封装增删改查的更多相关文章
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- python连接sqlserver和MySQL实现增删改查
参考python核心编程 编写一个用户洗牌的脚本,根据用户输入,选择连接sqlserver或者MySQL,创建数据库.表,随机生成数据,并实现增删改查. 其中,为了兼容python2和python3, ...
- python连接sql server数据库实现增删改查
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- Scala对MongoDB的增删改查操作
=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! ==================== ...
- MongoDB的增删改查 转
MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系. ...
- Java实现mongodb原生增删改查语句
Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...
- C# 对MongoDB 进行增删改查的简单操作
C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库 /// & ...
随机推荐
- 【CTF】msf和impacket联合拿域控内网渗透-拿域控
前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...
- 鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程 | 百篇博客分析OpenHarmony源码 | v59.01
百篇博客系列篇.本篇为: v59.xx 鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程 | 51.c.h.o 编译构建相关篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿 ...
- 鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务 | 百篇博客分析OpenHarmony源码 | v41.03
百篇博客系列篇.本篇为: v41.xx 鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务 | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度谁 ...
- YbtOJ#662-交通运输【线段树合并,树状数组】
正题 题目链接:http://www.ybtoj.com.cn/contest/122/problem/2 题目大意 给出\(n\)个点的一棵有根树,对于每个\(x\)求,删除点\(x\)后修改某个点 ...
- k8s负载资源StatefulSet工作解析
在k8s中工作负载资源StatefulSet用于管理有状态应用. 什么是无状态? 组成一个应用的pod是对等的,它们之前没有关联和依赖关系,不依赖外部存储. 即我们上篇小作文中deployment创建 ...
- 从零入门 Serverless | 架构的演进
作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...
- Linux 下 SVN 的安装和配置
SVN 是一个自由开源的版本管理系统,它可以按照时间的顺序去管理文件.目录以及对其进行的修改.于今,它被广泛的用于互联网公司的项目版本管理中 工作原理 它的工作原理如下图所示 它是由一个SVN服务器和 ...
- 洛谷4208 JSOI2008最小生成树计数(矩阵树定理+高斯消元)
qwq 这个题目真的是很好的一个题啊 qwq 其实一开始想这个题,肯定是无从下手. 首先,我们会发现,对于无向图的一个最小生成树来说,只有当存在一些边与内部的某些边权值相同的时候且能等效替代的时候,才 ...
- hdu3001(三进制状压)
题目大意: 现在给你一个有n个点和m条边的图,每一条边都有一个费用,每个点不能经过超过两次,求所有点至少遍历一次的最小费用 其中n<=10 m没有明确限制(肯定不会超过1e5) 一看到这个数据范 ...
- I-Base62
I - Base62 PS:一个任意进制转换的大数问题 传送门:Base62 短除法原理: 20(10进制) => 202(3进制) 20 = (2 * 3 ^ 2 + 0 * 3 ^ 1 + ...