那我们开始讲解“MongoDB操作类封装实例代码”的攻略。
什么是 MongoDB 操作类封装
MongoDB 操作类封装是将 MongoDB 的操作进行封装,便于代码的复用和维护。通过封装,我们可以把公共的操作封装在一个类中,在其他地方引用这个类就可以直接调用封装好的方法,减少了不必要的重复代码,提高了代码的可读性和可维护性。
封装类的基本结构
一个 MongoDB 操作类封装的基本结构如下:
class MongoDB:
def __init__(self, db_name, coll_name):
self.client = MongoClient('localhost', 27017)
self.db = self.client.get_database(db_name)
self.collection = self.db.get_collection(coll_name)
def find_one(self, cond):
document = self.collection.find_one(cond)
return document
def find(self, cond):
cursor = self.collection.find(cond)
documents = list(cursor)
return documents
def insert_one(self, document):
result = self.collection.insert_one(document)
return result
def update_one(self, cond, document):
result = self.collection.update_one(cond, document)
return result
def delete_one(self, cond):
result = self.collection.delete_one(cond)
return result
def close(self):
self.client.close()
在这个封装类中,我们实现了 MongoDB 的一些基本操作,包括查找、插入、更新和删除等。我们在初始化方法 __init__
中,连接 MongoDB 数据库,选择对应的数据库和集合。在每个方法中,我们都是通过 MongoDB Python 驱动程序 pymongo
的 API 实现的相应操作。
封装类的使用
以下是一个使用上述封装类的示例代码:
from pymongo import MongoClient
from mongo_db import MongoDB
if __name__ == '__main__':
db_name = 'test_db'
coll_name = 'test_coll'
mongo = MongoDB(db_name, coll_name)
# 插入一条数据
document = {'name': 'John', 'age': 26}
result = mongo.insert_one(document)
print(f'插入一条数据,返回结果为:{result.inserted_id}')
# 更新一条数据
cond = {'name': 'John'}
document = {'$set': {'age': 27}}
result = mongo.update_one(cond, document)
print(f'更新一条数据,返回结果为:{result.modified_count}')
# 查找一条数据
cond = {'name': 'John'}
document = mongo.find_one(cond)
print(f'查找一条数据,返回结果为:{document}')
# 查找多条数据
cond = {'age': {'$gt': 25}}
documents = mongo.find(cond)
print(f'查找多条数据,返回结果为:{documents}')
# 删除一条数据
cond = {'name': 'John'}
result = mongo.delete_one(cond)
print(f'删除一条数据,返回结果为:{result.deleted_count}')
# 关闭连接
mongo.close()
示例说明
在示例代码中,我们首先通过导入 pymongo 的 MongoClient
类和我们自己封装的 MongoDB
类来初始化 MongoDB 数据库连接和操作。然后我们进行了一系列的操作,包括插入、更新、查找和删除等。
在插入一条数据的操作中,我们可以看到我们的封装类返回了一个 result.inserted_id
对象,其中的 result
对象是由 MongoDB 自己返回的,inserted_id
表示插入数据的 _id
字段,我们可以通过该字段来获取插入的数据的唯一标识。
在更新一条数据的操作中,我们通过 cond
条件和 document
更新内容两个参数来更新一条数据。其中,cond
对应的是需要更新的数据的筛选条件,而 document
对应的是需要更新的字段的内容,使用 $set
关键字可以将对应的字段进行更新操作。
在查找一条数据的操作中,我们也是使用了 cond
条件参数,返回查找到的第一条数据的对象。而查找多条数据的操作中,我们同样使用了 cond
条件参数,并返回一个包含所有查找到的记录的列表。
在删除一条数据的操作中,我们同样是使用了 cond
条件参数来进行筛选,返回的 result.deleted_count
表示成功删除的记录数。
最后,我们在结束操作后关闭了 MongoDB 数据库连接,以释放资源和防止内存泄漏的问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB操作类封装实例代码 - Python技术站