Python操作MongoDB数据库
1.MongoDB介绍
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
2.安装pymongo库
pip install pymongo
3.python操作MongoDB
(1)创建连接connection
(2)指定数据库
(3)指定集合
(4)执行插入、更改、查询、删除语句获取数据处理数据
import pymongo
class MongoConfig:
HOST = "127.0.0.1"
PORT = 27017
USER = "admin"
PWD = "admin"
DB = "person" # 指定数据库
class MongoConnection:
def __init__(self,ip=MongoConfig.HOST,port=MongoConfig.PORT,
user=MongoConfig.USER,pwd=MongoConfig.PWD,
db=MongoConfig.DB):
# 1.创建连接 mongodb://用户名:密码@ip:端口
client = pymongo.MongoClient(
f"mongodb://{user}:{pwd}@{ip}:{port}"
)
# 2.指定数据库
self.db = client[db]
def insert(self,collection,query,many=False):
"""
插入方法
:param collection: 集合
:param query: 数据
:param many: 控制是否匹配多个
:return:
"""
# 指定集合
data_collection=self.db[collection]
if many:
data_collection.insert_many(query)
else:
data_collection.insert_one(query)
def find(self,collection,query,many=True):
data_collection = self.db[collection]
if many:
result=[]
results=data_collection.find(query)
for data in results:
result.append(data)
return result
else:
result=data_collection.find_one(query)
return result
def update(self,collection,query,new_value,many=False):
data_collection = self.db[collection]
if many:
data_collection.update_many(query,{"$set":new_value})
else:
data_collection.update_one(query, {"$set": new_value})
def delete(self,collection,query,many=False):
data_collection = self.db[collection]
if many:
data_collection.delete_many(query)
else:
data_collection.delete_one(query)