一、MongoDB是什么?¶
MongoDB是一种文档型数据库,它不像传统的关系型数据库(如MySQL)用表格存储数据,而是用类似JSON的“文档”(BSON格式)来存储信息。这种方式对初学者更友好——不需要记住复杂的SQL语法,直接用熟悉的键值对结构就能轻松管理数据。
二、为什么选MongoDB?¶
- 直观易懂:数据以“文档”形式存储,每个文档可以有不同的字段(键值对),适合灵活多变的数据结构(比如一个用户信息可能有“姓名”“年龄”,另一个用户可能多了“爱好”字段)。
- 上手简单:不需要提前设计严格的表结构,插入数据时自动创建集合(类似表),适合快速开发。
- 跨平台支持: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路径正确)即可重启服务。