Coursera 笔记

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

CRUD OperationsMongoDB CRUD 操作简介

Coursera ↗

欢迎观看关于 MongoShell 和 CRUD 操作 的介绍视频。通过本视频,您将能够使用 MongoShell 连接到您的 MongoDB 数据库并执行基本的 CRUD 操作。


 MongoShell 概述

MongoShell 是 MongoDB 提供的一个交互式命令行工具,用于与数据库进行交互。它是一个 JavaScript 接口,可以用来执行数据和管理操作。

首先,您需要通过提供连接字符串连接到集群。一旦连接成功,您就可以查看所有数据库的列表。


 连接到 Campus Management 数据库

连接到 MongoDB 实例后,使用以下命令开始工作:

use CampusManagement

这将选择 Campus Management 数据库,并使用以下命令查看数据库中有哪些集合:

show collections

输出将显示 staff 和 students 两个集合。


 CRUD 操作

创建操作(Create)

CRUD 操作包括 创建、读取、更新 和 删除 四个基本操作。我们从创建操作开始:

db.students.insertOne({
  name: "John Doe",
  email: "johndoe@example.com",
  status: "on-campus"
})

此操作会将一个新的文档插入到 students 集合中,并返回操作确认结果。MongoDB 会自动为文档添加 _id 字段,这是每个文档必需的。

如果我们要插入多个文档,可以使用 insertMany 方法:

db.students.insertMany([
  { name: "Jane Doe", email: "janedoe@example.com", status: "online" },
  { name: "Mike Smith", email: "mikesmith@example.com", status: "on-campus" }
])

读取操作(Read)

  1. 查询一个文档:
db.students.findOne()

这将返回 students 集合中的第一个文档。

  1. 按特定条件查询文档:
db.students.findOne({ email: "johndoe@example.com" })

如果有多个文档符合条件,只有第一个文档会被返回。

  1. 查询所有符合条件的文档:
db.students.find({ lastName: "Doe" })
  1. 统计符合条件的文档数量:
db.students.count({ lastName: "Doe" })

更新操作(Update)

  1. 替换文档:
db.students.replaceOne(
  { lastName: "Doe" },
  { name: "John Doe", email: "newemail@example.com", status: "online" }
)

此操作将替换符合条件的文档,并返回操作确认信息。

  1. 使用 $set 更新文档:
db.students.updateOne(
  { lastName: "Doe" },
  { $set: { status: "online" } }
)

这将仅更新指定字段而不是替换整个文档。

  1. 批量更新多个文档:
db.students.updateMany(
  { status: "on-campus" },
  { $set: { status: "online" } }
)

删除操作(Delete)

  1. 删除一个文档:
    db.students.deleteOne({ lastName: "Doe" })
    
  2. 删除多个文档:
    db.students.deleteMany({ status: "online" })
    

这些操作将返回一个确认信息,包括删除的文档数量。


 总结

通过本视频,您学习了:

  • MongoShell 是一个交互式命令行工具,您可以用它连接到 MongoDB 数据库并执行 CRUD 操作。
  • 使用 show dbs 列出数据库,使用 use 选择数据库,使用 show collections 显示集合。
  • CRUD 操作 包括:insertOne、insertMany、findOne、find、count、replaceOne、updateOne、updateMany、deleteOne 和 deleteMany。
  • 不同的操作会返回不同的确认信息,帮助您了解操作是否成功。