你的第一个 MongoDB 实验

MongoDBMongoDBBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

欢迎来到 LabEx!这是你的第一个 MongoDB 实验。如果你从未使用过数据库,也不用担心——我们会一步步引导你完成。

首先,让我们了解一下 MongoDB 是什么:MongoDB 是一种以灵活的文档格式存储数据的数据库系统。与传统的电子表格不同,MongoDB 允许你以更自然的方式组织数据,类似于你在电脑上通过文件夹组织文件的方式。

在本实验中,你将学习如何:

  1. 启动 MongoDB shell 并了解它的作用
  2. 创建你的第一个数据库和集合(collection)
  3. 在 MongoDB 中添加和查看数据
  4. 统计和删除数据

这些技能将为你学习 MongoDB 打下坚实的基础。让我们开始吧!

点击下方的 Continue 按钮开始实验。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb/BasicOperationsGroup -.-> mongodb/start_mongodb_shell("Start MongoDB Shell") mongodb/BasicOperationsGroup -.-> mongodb/create_database_collection("Create Database and Collection") mongodb/BasicOperationsGroup -.-> mongodb/insert_document("Insert Document") mongodb/BasicOperationsGroup -.-> mongodb/bulk_insert_documents("Bulk Insert Documents") mongodb/BasicOperationsGroup -.-> mongodb/delete_document("Delete Document") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") subgraph Lab Skills mongodb/start_mongodb_shell -.-> lab-420660{{"你的第一个 MongoDB 实验"}} mongodb/create_database_collection -.-> lab-420660{{"你的第一个 MongoDB 实验"}} mongodb/insert_document -.-> lab-420660{{"你的第一个 MongoDB 实验"}} mongodb/bulk_insert_documents -.-> lab-420660{{"你的第一个 MongoDB 实验"}} mongodb/delete_document -.-> lab-420660{{"你的第一个 MongoDB 实验"}} mongodb/find_documents -.-> lab-420660{{"你的第一个 MongoDB 实验"}} mongodb/query_with_conditions -.-> lab-420660{{"你的第一个 MongoDB 实验"}} end

启动 MongoDB Shell

在启动 MongoDB 之前,我们首先需要在你的 LabEx 虚拟机中打开一个终端。你有两种方式可以做到这一点:

  1. 桌面界面:查看桌面左侧,点击标有 Xfce Terminal 的图标。
  2. 终端界面:点击 LabEx 虚拟机窗口顶部的标签,选择 Terminal Interface
打开终端

这两种方法效果相同——它们只是访问相同实验环境的不同方式。选择你喜欢的任何一种即可!

现在,让我们启动 MongoDB shell,它就像是数据库的控制面板。你可以将 shell 视为直接与 MongoDB 对话的方式——你输入命令,MongoDB 会做出响应。

要启动 MongoDB shell,输入以下命令并按回车键:

mongosh

你应该会看到类似以下内容:

Current Mongosh Log ID: 65a7f3e5f1a1234567890abc
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+x.y.z
Using MongoDB:          x.y.z
Using Mongosh:          x.y.z
MongoDB shell 连接信息

这意味着你已经成功连接到 MongoDB!连接信息显示 MongoDB 正在你的计算机上运行(这就是 '127.0.0.1' 的含义——它是你计算机的本地地址)。

让我们尝试第一个 MongoDB 命令,查看当前存在的数据库。输入:

show dbs

确保在 mongosh shell 中输入该命令,而不是在终端中。

你应该会看到一个数据库列表,类似于以下内容:

admin             40.00 KiB
config            12.00 KiB
local             40.00 KiB

这些是 MongoDB 自动创建的默认数据库。暂时不用担心它们——我们将在下一步创建自己的数据库。

创建你的第一个数据库

在 MongoDB 中,数据是按数据库(database)组织的。数据库就像一个容器,里面存放着相关的信息集合(collections)。你可以把它想象成一个文件柜,里面存放着不同类型的文档。

要创建一个新的数据库(如果它已经存在,则切换到该数据库),输入以下命令:

use mylab_database

你应该会看到:

switched to db mylab_database

现在,让我们添加一些数据。在 MongoDB 中,数据存储在“集合”(collections,类似于文件夹)和“文档”(documents,类似于文件)中。文档是一条包含字段和值的数据,比如一个人的姓名和年龄。

让我们创建一个名为 "users" 的集合,并向其中添加一个文档:

db.users.insertOne({ name: "John Doe", age: 30 })

让我们分解一下这个命令:

  • db 指的是我们当前的数据库(mylab_database)
  • users 是我们的集合名称,它会自动创建
  • insertOne 是添加一个文档的命令
  • 大括号 { } 中包含我们的文档数据,其中有两个字段:nameage

你应该会看到类似以下内容:

{
  acknowledged: true,
  insertedId: ObjectId("65b2f3...")
}

MongoDB 会自动为每个文档生成一个唯一的 ID(ObjectId),以便我们稍后可以找到它。

要查看我们刚刚添加的内容,输入以下命令:

db.users.find()

你应该会看到:

[
  {
    _id: ObjectId("65b2f3..."),
    name: 'John Doe',
    age: 30
  }
]

添加更多数据

现在我们已经了解了如何添加一个文档,接下来让我们创建另一个集合并一次性添加多个文档。这次,我们将存储有关书籍的信息。

首先,添加一本书:

db.books.insertOne({
    title: "MongoDB Basics",
    author: "Jane Smith",
    year: 2023
})

当我们添加第一本书时,MongoDB 会自动创建 'books' 集合。

现在让我们尝试更强大的功能——使用 insertMany 一次性添加多个文档。这在你有大量数据需要添加时非常有用:

db.books.insertMany([
    {
        title: "Python Programming",
        author: "John Doe",
        year: 2022
    },
    {
        title: "Data Science Handbook",
        author: "Alice Johnson",
        year: 2021
    }
])

注意方括号 [ ]——它们告诉 MongoDB 我们正在一次性插入多个文档。

你应该会看到类似以下内容:

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("65b2f4..."),
    '1': ObjectId("65b2f5...")
  }
}

让我们查看所有的书籍:

db.books.find()

查看和统计数据

现在我们的数据库中已经有了一些数据,让我们学习如何以不同的方式查看和统计这些数据。MongoDB 提供了多种方法来精确查找你所需的信息。

要统计我们有多少本书,输入以下命令:

db.books.countDocuments()

这个命令会统计 books 集合中的所有文档。你应该会看到:

3

要查找特定的书籍,我们可以使用 find() 命令并添加一个“查询条件”(query)。查询条件就像一个过滤器,告诉 MongoDB 我们想要查找的内容。

要查找特定作者的书籍,输入以下命令:

db.books.find({ author: "John Doe" })

大括号内的部分 { author: "John Doe" } 是我们的过滤器——它告诉 MongoDB 只显示作者为 "John Doe" 的书籍。

你应该会看到:

[
  {
    _id: ObjectId("65b2f4..."),
    title: 'Python Programming',
    author: 'John Doe',
    year: 2022
  }
]

让我们尝试另一个查询条件,查找 2023 年出版的书籍:

db.books.find({ year: 2023 })

删除数据

最后,让我们学习如何从数据库中删除数据。就像我们可以添加一个或多个文档一样,我们也可以用同样的方式删除它们。

要删除一本特定的书籍,使用 deleteOne

db.books.deleteOne({ title: "MongoDB Basics" })

大括号内的部分告诉 MongoDB 要删除哪本书。你应该会看到:

{ acknowledged: true, deletedCount: 1 }

要根据条件一次性删除多个文档,使用 deleteMany。让我们删除所有在 2022 年之前出版的书籍:

db.books.deleteMany({ year: { $lt: 2022 } })

在这里,$lt 表示“小于”——所以我们正在删除所有年份小于 2022 的书籍。

要检查集合中还剩下什么内容,输入以下命令:

db.books.find()

当你完成探索后,可以通过输入以下命令退出 MongoDB shell:

exit

总结

恭喜你!你已经完成了你的第一个 MongoDB 实验,并迈出了进入数据库世界的第一步。让我们回顾一下你所学到的内容:

  1. 如何启动和使用 MongoDB shell
  2. 数据库和集合如何组织你的数据
  3. 如何添加单个和多个文档
  4. 如何使用查询查找特定信息
  5. 如何删除不再需要的数据

这些可能看起来是小步骤,但它们是使用 MongoDB 的基础。每个数据库专家都是从你现在的位置开始的!

记住,学习数据库是一段旅程,而你刚刚迈出了第一步。继续练习,保持好奇心,不要害怕尝试。你的下一个实验只需点击一下即可开始!