Coursera 笔记

Module 02 · Introducing MongoDB: An Open-Source NoSQL Database

Accessing MongoDB from Python从 Python 访问 MongoDB

Coursera ↗

欢迎观看关于 如何使用 Python 访问 MongoDB 的介绍视频。通过本视频,您将能够:

  • 解释 MongoClient 是什么,
  • 使用 Python 执行 Campus Management 数据库 的基本 CRUD 操作。

 MongoClient 介绍

MongoClient 是一个帮助您与 MongoDB 交互的类。我们首先从 pymongo 库中导入 MongoClient,这是 MongoDB 官方为 Python 提供的驱动程序。

from pymongo import MongoClient

连接到 MongoDB

创建 MongoClient 实例时,您需要提供连接的 URI(统一资源标识符),它告诉程序 MongoDB 的地址:

client = MongoClient('mongodb://localhost:27017')

然后,您可以通过 MongoClient 获取数据库对象和集合:

db = client['CampusManagement']
students = db['students']


 执行基本 CRUD 操作

创建操作(Create)

  1. 插入单个文档:

使用 insert_one 方法向集合中插入一个学生文档:

student = { 'firstName': 'John', 'lastName': 'Doe', 'email': 'john.doe@example.com' }
students.insert_one(student)

  1. 批量插入多个文档:

使用 insert_many 方法批量插入多个学生文档:

students.insert_many([
    { 'firstName': 'Jane', 'lastName': 'Doe', 'email': 'jane.doe@example.com' },
    { 'firstName': 'Mike', 'lastName': 'Smith', 'email': 'mike.smith@example.com' }
])

读取操作(Read)

  1. 查找单个文档:

使用 find_one 方法返回符合条件的第一个文档。如果没有筛选条件,将返回第一个文档。

student = students.find_one()

  1. 查找特定条件的单个文档:

查找具有特定电子邮件地址的学生:

student = students.find_one({'email': 'john.doe@example.com'})

  1. 查找多个文档:

使用 find 方法返回所有符合条件的学生:

cursor = students.find({'lastName': 'Doe'})

  1. 统计符合条件的文档数量:

使用 count_documents 方法统计符合条件的学生数量:

count = students.count_documents({'lastName': 'Doe'})

更新操作(Update)

  1. 替换文档:

使用 replace_one 方法替换整个文档:

students.replace_one(
    {'lastName': 'Doe'},
    {'firstName': 'John', 'lastName': 'Doe', 'email': 'john.newemail@example.com', 'status': 'online'}
)

  1. 内联更新(In-place Update):

对于较小的更新,使用 $set 操作符进行内联更新:

students.update_one(
    {'lastName': 'Doe'},
    {'$set': {'status': 'online', 'email': 'john.updated@example.com'}}
)

  1. 批量更新多个文档:

使用 update_many 方法更新所有符合条件的文档:

students.update_many(
    {'status': 'on-campus'},
    {'$set': {'status': 'online'}}
)

删除操作(Delete)

  1. 删除单个文档:

使用 delete_one 方法删除符合条件的第一个文档:

students.delete_one({'lastName': 'Doe'})

  1. 删除多个文档:

使用 delete_many 方法删除符合条件的所有文档:

students.delete_many({'status': 'online'})

 总结

通过本视频,您学习了:

  • MongoClient 是一个用于与 MongoDB 交互的类,通过它可以连接到数据库。
  • 使用 insert_one 和 insert_many 执行单个或批量插入操作。
  • 使用 replace_one 和 update_one 执行文档替换和更新操作。
  • 使用 find_one、find 和 count_documents 执行读取操作。
  • 使用 delete_one 和 delete_many 执行删除操作。