测开之路五十一:代码实现MongoDB增删改查

Posted zhongyehai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测开之路五十一:代码实现MongoDB增删改查相关的知识,希望对你有一定的参考价值。

 

初始化时连接、析构时断开连接

技术图片

from pymongo import MongoClient


class Mogo(object):

def __init__(self, host=‘127.0.0.1‘, port=27017):
""" 初始化时连接 """
self.connect = MongoClient(host, port)

def __del__(self):
""" 析构时断开连接 """
self.connect.close()

插入:

技术图片

技术图片

def insert(self, database, collection, documents):
""" 增:database: 数据库名、collection: 表名、documents: 数据 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
return _collection.insert_one(documents)

 

准备好几条数据

技术图片

 

查找

如:查name为“XXX”的数据

技术图片

def search(self, database, collection, filter):
""" 查:database: 数据库名、collection: 表名、filter: 查找条件 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
return _collection.find(filter)

默认查出来是结果集

技术图片

 

结果集可以转list,也可以用for循环取,取出来一个是list,一个是字典

技术图片

 

增加过滤条件:使用projection

如:查sex=“男”的数据,且不返回id和sex

技术图片

def search(self, database, collection, filter):
""" 查:database: 数据库名、collection: 表名、filter: 查找条件 """
projection = None
if "projection" in filter:
projection = filter.pop("projection")
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
return _collection.find(filter, projection)

技术图片

 

删除:

技术图片

def delet(self, database, collection, filter):
""" 删:database: 数据库名、collection: 表名、filter: 查找条件 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
_collection.delete_one(filter)

如:删除之前插入的数据

技术图片

 技术图片

再刷新,表里面已经没有数据了

技术图片

 

更新:

技术图片

def update(self, database, collection, filter, documents):
""" 改:database: 数据库名、collection: 表名、filter: 查找条件、documents: 数据 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
_collection.update_one(filter, ‘$set‘: documents)

 技术图片

 

最后增查改删的代码

from pymongo import MongoClient


class Mogo(object):

def __init__(self, host=‘127.0.0.1‘, port=27017):
""" 初始化时连接 """
self.connect = MongoClient(host, port)

def __del__(self):
""" 析构时断开连接 """
self.connect.close()

def insert(self, database, collection, documents):
""" 增:database: 数据库名、collection: 表名、documents: 数据 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
return _collection.insert_one(documents)

def search(self, database, collection, filter):
""" 查:database: 数据库名、collection: 表名、filter: 查找条件 """
projection = None
if "projection" in filter:
projection = filter.pop("projection")
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
return _collection.find(filter, projection)

def update(self, database, collection, filter, documents):
""" 改:database: 数据库名、collection: 表名、filter: 查找条件、documents: 数据 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
_collection.update_one(filter, ‘$set‘: documents)

def delet(self, database, collection, filter):
""" 删:database: 数据库名、collection: 表名、filter: 查找条件 """
_database = self.connect.get_database(database) # 获取数据库对象
_collection = _database.get_collection(collection) # 获取表对象
_collection.delete_one(filter)

 

以上是关于测开之路五十一:代码实现MongoDB增删改查的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB java API 实现增删改查

Java实现对MongoDB的增删改查

Java操作MongoDB的增删改查,完整项目分享

Java操作MongoDB的增删改查,完整项目分享

测开之路五十六:实现类似unittest的断言

SpringBoot操作MongoDB实现增删改查