码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-06-05 00:31:05      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:pre   src   base   data   ase   取数   ODB   获取数据   图片   

 

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

技术图片

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增删改查

标签:pre   src   base   data   ase   取数   ODB   获取数据   图片   

原文地址:https://www.cnblogs.com/zhongyehai/p/10976943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!