一、连接器的安装和配置
- python连接器:MongoDB官方提供的python工具包
- 支持的版本:2.6~5.0
- 安装:
pip install pymongo
二、管理MongoDB
2.1、第一步,连接到MongoDB数据库系统
- 方式一,使用默认的配置:
client = MongoClient()
- 方式二,指定主机地址和端口号:
client = MongoClient('localhost',27017)
- 方式三,使用URI连接参数:
client = MongoClient('mongodb://localhost:27017/')
2.2、第二步,管理MongoDB数据库
-
通过MongoClient对象来管理多个数据库
-
获取数据库(逻辑库)对象
# 方式一 db = client.DATABASE_NAME # 方式二 db = client["DATABASE_NAME"] # 方式三 db = client.get_database(name=None, *args)
-
查看所有的数据库(逻辑库):
client.list_databases()
-
删除数据库(逻辑库):
client.drop_database(name_or_database, *args)
2.3、第三步,管理MongoDB中的集合
-
通过数据库对象db来管理集合
-
获取集合对象
# 方式一 db = client.DATABASE_NAME db.COLLECTION_NAME # 方式二 client.DATABASE_NAME.COLLECTION_NAME # 方式三 db.get_collection(name, *args)
-
查看当前数据库下的集合列表:
db.list_collection_names()
-
删除集合:
db.drop_collection(name_or_collection, *args)
2.4、第四步,管理MongoDB中的文档
三、新增文档
pymongo在插入数据时可以将python的对象转换成BSON
两种场景和语法
- insert_one():插入一个文档
- insert_many():批量插入
3.1、新增一个文档
-
调用方法:
result = db.COLLECTION_NAME.insert_one(doc)
,doc是一个字典 -
返回插入的文档ID:
result.inserted_id
3.2、批量新增文档
-
调用方法
doc_list = [doc1, doc2] result = db.COLLECTION_NAME.insert_many(doc_list)
-
返回插入的文档ID列表:
result.inserted_ids
-
返回插入的文档总数:
len(result.inserted_ids)
示例
from datetime import datetime
from pymongo import MongoClient
from loguru import logger
from util.generate_data import GenerateData
class LearnMongoDB:
def __init__(self):
self.client = MongoClient()
self.gd = GenerateData()
def add_one(self):
"""新增一个文档"""
doc = {
'username': self.gd.name(),
'password': '123456',
'address': self.gd.address(),
'reg_date': datetime.now(),
'company': {
'name': '***科技公司',
'phone': self.gd.phone()
}
}
db = self.client.test
result = db.users.insert_one(doc)
logger.info(f'插入返回的结果id:{
result.inserted_id}')
def add_many(self, num: int = 5):
"""
新增多个文档
:param num: 新增的数量
:return:
"""
doc_list = []
for _ in range(num):
doc = {
'username': self.gd.name(),
'password': '123456',
'address': self.gd.address(),
'reg_date': datetime.now(),
'comp