零基础学MongoDB:从安装到第一个数据库创建

一、MongoDB是什么?

MongoDB是一种文档型数据库,它不像传统的关系型数据库(如MySQL)用表格存储数据,而是用类似JSON的“文档”(BSON格式)来存储信息。这种方式对初学者更友好——不需要记住复杂的SQL语法,直接用熟悉的键值对结构就能轻松管理数据。

二、为什么选MongoDB?

  1. 直观易懂:数据以“文档”形式存储,每个文档可以有不同的字段(键值对),适合灵活多变的数据结构(比如一个用户信息可能有“姓名”“年龄”,另一个用户可能多了“爱好”字段)。
  2. 上手简单:不需要提前设计严格的表结构,插入数据时自动创建集合(类似表),适合快速开发。
  3. 跨平台支持:Windows、macOS、Linux都能安装,社区文档丰富。

三、安装MongoDB(以常见系统为例)

安装前确保你的电脑已联网,以下是不同系统的安装步骤:

1. Windows系统安装
  • 步骤1:从MongoDB官网下载安装包(点击下载),选择“Windows”版本,按提示安装(注意勾选“Add MongoDB to PATH”,方便后续命令行操作)。
  • 步骤2:验证安装是否成功:打开命令提示符(Win+R → 输入cmd),输入 mongod --version,如果显示版本号则安装成功。
  • 步骤3:启动MongoDB服务:在命令行输入 mongod --dbpath=数据存储路径(例如 mongod --dbpath=C:\data\db,若C:\data\db不存在,需手动创建文件夹)。服务启动后会显示类似“waiting for connections on port 27017”的提示。
2. macOS系统安装

推荐用Homebrew安装(更简单):
- 步骤1:打开终端,输入 brew tap mongodb/brew(添加MongoDB仓库)。
- 步骤2:输入 brew install mongodb-community(安装社区版)。
- 步骤3:启动服务:brew services list 查看MongoDB状态,若未启动则输入 brew services start mongodb-community
- 步骤4:验证安装:输入 mongo --version 查看版本。

3. Linux系统安装(Ubuntu为例)
  • 步骤1:打开终端,执行:
  sudo apt update
  sudo apt install -y mongodb
  • 步骤2:启动服务:sudo systemctl start mongod(Ubuntu默认服务名是mongod)。
  • 步骤3:验证安装:输入 mongo --version 查看版本。

四、MongoDB基本概念(快速理解)

  • 数据库(Database):存储多个集合的容器,类似“文件夹”。
  • 集合(Collection):存储一组文档的容器,类似“表”,无需预先创建,插入数据时自动生成。
  • 文档(Document):MongoDB的最小数据单元,以BSON(二进制JSON)格式存储,字段名唯一,键值对灵活(例如:{"name": "Alice", "age": 18, "hobbies": ["reading", "sports"]})。

五、连接MongoDB(进入命令行界面)

安装并启动MongoDB服务后,打开新的终端窗口,输入 mongo 即可进入MongoDB的命令行界面(Mongo Shell),这是我们操作数据库的“控制台”。

成功连接后,你会看到类似以下提示:

MongoDB shell version v6.0.5
connecting to: mongosh "mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.9.1"
...
> 

> 是Mongo Shell的命令提示符,接下来的操作都在这里执行)

六、创建第一个数据库:school

MongoDB中,数据库不需要“显式创建”——只要你选择一个不存在的数据库(通过use命令),MongoDB就会自动创建它。

步骤1:切换到school数据库

在Mongo Shell中输入:

use school

执行后会显示:switched to db school。此时,“school”数据库已被创建(即使你还没插入任何数据)。

步骤2:创建集合(students)并插入数据

集合(Collection)是数据库中的“表”,同样无需预先定义。我们先创建一个名为students的集合,并插入几条学生信息:

// 插入单个文档(学生Alice)
db.students.insertOne({
  name: "Alice",
  age: 18,
  gender: "female",
  hobbies: ["reading", "painting"]
})

// 插入多个文档(学生Bob和Charlie)
db.students.insertMany([
  { name: "Bob", age: 19, gender: "male", hobbies: ["basketball", "coding"] },
  { name: "Charlie", age: 17, gender: "male", hobbies: ["gaming", "hiking"] }
])
  • insertOne:插入单个文档,返回插入结果(包含_id,MongoDB自动生成的唯一ID)。
  • insertMany:插入多个文档,返回包含所有插入结果的数组。
步骤3:查询数据库中的数据

插入数据后,用find()方法查询students集合中的所有文档:

// 查询所有学生(toArray()将结果转为数组,方便查看)
db.students.find().toArray()

执行后会返回类似以下结果(_id是自动生成的唯一标识):

[
  {
    "_id": ObjectId("64d5..."),
    "name": "Alice",
    "age": 18,
    "gender": "female",
    "hobbies": ["reading", "painting"]
  },
  {
    "_id": ObjectId("64d5..."),
    "name": "Bob",
    "age": 19,
    "gender": "male",
    "hobbies": ["basketball", "coding"]
  },
  {
    "_id": ObjectId("64d5..."),
    "name": "Charlie",
    "age": 17,
    "gender": "male",
    "hobbies": ["gaming", "hiking"]
  }
]

七、总结与下一步

恭喜!你已经完成了MongoDB的安装、第一个数据库(school)和集合(students)的创建,还插入并查询了数据。

MongoDB的核心特点是灵活的文档结构无需预定义表结构,适合快速开发。接下来可以尝试:
- 用updateOne()更新某个学生的年龄(例如:db.students.updateOne({name: "Alice"}, {$set: {age: 19}}))。
- 用deleteOne()删除某个学生(例如:db.students.deleteOne({name: "Charlie"}))。

想深入学习可参考MongoDB官方文档,或尝试用MongoDB存储更复杂的场景(如博客系统、用户数据等)。

小提示:如果MongoDB服务意外关闭,只需重新在终端输入mongod(Windows需先确保mongod路径正确)即可重启服务。

小夜