个人选择社区版
下载
直接下载
双击打开

选择自定义安装 custom
可以选择一个新建的目录,不要包含中文
这里安装mongoDB官方可视化工具,可以不要,navicat之类的其他也可以连接。这是MongoDB官方提供的一款GUI工具
任务管理器
默认安装目录
如果需要调整这些值,则可以在编辑安装目录中的bin\mongod.cfg文件后,重启数据库使其生效。

为了更好地使用数据库,可以继续创建对应的数据库、用户,并设置自己的密码,在接入MongoDB的shell窗口中执行以下命令:
sql
db = db.getSiblingDB("admin") // 切换到 admin 数据库
db.createUser({ // 创建一个新用户
user: 'admin', // 用户名
pwd: 'asd123456', // 密码
roles: [ // 分配给用户的角色数组
{role: 'clusterAdmin', db: 'admin'}, // 集群管理权限
{role: 'dbAdminAnyDatabase', db: 'admin'}, // 所有数据库的管理权限
{role: 'userAdminAnyDatabase', db: 'admin'}, // 所有数据库的用户管理权限
{role: 'readWriteAnyDatabase', db: 'admin'} // 所有数据库的读写权限
]
})
这段代码是用于在 MongoDB 中创建一个具有广泛权限的管理员用户。让我逐行解释它的含义:
javascript
db = db.getSiblingDB("admin") // 切换到 admin 数据库
这行代码将当前数据库上下文切换到 admin
数据库。admin
数据库是 MongoDB 的系统数据库,用于存储用户身份验证和授权信息。
javascript
db.createUser({ // 创建一个新用户
user: 'admin', // 用户名
pwd: 'asd123456', // 密码
roles: [ // 分配给用户的角色数组
{role: 'clusterAdmin', db: 'admin'}, // 集群管理权限
{role: 'dbAdminAnyDatabase', db: 'admin'}, // 所有数据库的管理权限
{role: 'userAdminAnyDatabase', db: 'admin'}, // 所有数据库的用户管理权限
{role: 'readWriteAnyDatabase', db: 'admin'} // 所有数据库的读写权限
]
})
这个用户被授予的权限包括:
-
clusterAdmin - 集群管理权限:
- 可以管理整个 MongoDB 集群(分片、副本集等)
- 可以执行集群范围内的操作
-
dbAdminAnyDatabase - 所有数据库的管理权限:
- 可以在所有数据库上执行管理任务
- 可以运行统计命令、索引管理等
-
userAdminAnyDatabase - 所有数据库的用户管理权限:
- 可以在所有数据库上创建和管理用户
- 可以分配和撤销用户权限
-
readWriteAnyDatabase - 所有数据库的读写权限:
- 可以在所有数据库上读取和写入数据
- 可以执行查询、插入、更新和删除操作
重要说明:
- 这个用户拥有非常广泛的权限,几乎可以执行 MongoDB 中的任何操作
- 这种高权限用户应该只在必要时创建,并且密码应该更复杂('asd123456' 是一个弱密码)
- 在生产环境中,应该遵循最小权限原则,只授予用户完成其任务所必需的最低权限
使用场景:
这段代码通常在初始设置 MongoDB 时执行,创建一个超级管理员账户,用于后续管理数据库和其他用户。要执行这段代码,您需要:
- 先以无认证模式启动 MongoDB
- 连接到 MongoDB
- 在 admin 数据库中执行这段代码
- 然后重新以认证模式启动 MongoDB,使用这个账户进行管理
创建用户后,您可以使用以下命令验证登录:
javascript
db.auth('admin', 'asd123456')

MongoDB 数据库基本操作指南
下面我将详细介绍如何在 MongoDB 中新建数据库、集合(相当于表),以及如何进行数据的增删改查操作。
1. 连接 MongoDB
首先,确保 MongoDB 服务已启动,然后打开命令行工具连接:
bash
# 使用 mongo shell 连接(旧版本)
mongo
# 或使用 mongosh 连接(新版本)
mongosh
2. 新建/切换数据库
javascript
// 使用 use 命令切换或创建数据库
// 如果数据库不存在,MongoDB 会在第一次插入数据时创建它
use mydatabase
3. 创建集合(表)并插入数据
插入单条文档(记录)
javascript
// 向 users 集合插入一条文档
// 如果集合不存在,会自动创建
db.users.insertOne({
name: "张三",
age: 25,
email: "zhangsan@example.com",
created_at: new Date()
})
插入多条文档
javascript
// 向 users 集合插入多条文档
db.users.insertMany([
{
name: "李四",
age: 30,
email: "lisi@example.com",
created_at: new Date()
},
{
name: "王五",
age: 28,
email: "wangwu@example.com",
created_at: new Date()
}
])
4. 查询数据
查询所有文档
javascript
// 查询 users 集合中的所有文档
db.users.find()
带条件查询
javascript
// 查询年龄等于25的用户
db.users.find({ age: 25 })
// 查询年龄大于25的用户
db.users.find({ age: { $gt: 25 } })
// 查询名字为"张三"的用户
db.users.find({ name: "张三" })
// 查询年龄在25到30之间的用户
db.users.find({ age: { $gte: 25, $lte: 30 } })
美化输出格式
javascript
// 使用 pretty() 方法使输出更易读
db.users.find().pretty()
5. 更新数据
更新单条文档
javascript
// 将名为"张三"的用户年龄更新为26
db.users.updateOne(
{ name: "张三" },
{ $set: { age: 26 } }
)
更新多条文档
javascript
// 将所有用户的 status 字段设置为"active"
db.users.updateMany(
{},
{ $set: { status: "active" } }
)
替换整个文档
javascript
// 替换名为"李四"的整个文档
db.users.replaceOne(
{ name: "李四" },
{
name: "李四",
age: 32,
email: "new_lisi@example.com",
status: "inactive",
updated_at: new Date()
}
)
6. 删除数据
删除单条文档
javascript
// 删除名为"王五"的用户
db.users.deleteOne({ name: "王五" })
删除多条文档
javascript
// 删除所有状态为"inactive"的用户
db.users.deleteMany({ status: "inactive" })
删除整个集合
javascript
// 删除 users 集合(包括所有文档)
db.users.drop()
删除整个数据库
javascript
// 切换到要删除的数据库
use mydatabase
// 删除当前数据库
db.dropDatabase()
7. 完整示例
javascript
// 1. 创建/切换到新数据库
use company
// 2. 插入员工数据
db.employees.insertMany([
{ name: "Alice", department: "IT", salary: 5000 },
{ name: "Bob", department: "HR", salary: 4500 },
{ name: "Charlie", department: "IT", salary: 5500 }
])
// 3. 查询所有IT部门员工
db.employees.find({ department: "IT" })
// 4. 给所有员工加薪10%
db.employees.updateMany(
{},
{ $mul: { salary: 1.1 } }
)
// 5. 删除薪资低于5000的员工
db.employees.deleteMany({ salary: { $lt: 5000 } })
// 6. 查看最终结果
db.employees.find().pretty()
注意事项:
- MongoDB 是区分大小写的,
db.users.find()
和db.Users.find()
指向不同的集合 - 使用
$set
操作符只更新指定字段,不会影响其他字段 - 删除操作是不可逆的,请谨慎执行
- 在生产环境中,重要操作前最好先备份数据
这些是 MongoDB 的基本操作,掌握了这些就可以开始使用 MongoDB 进行数据管理了。随着使用深入,您可以进一步学习索引、聚合管道、事务等高级功能。