docker pull mongo
docker run -d --name my-mongo -p 27017:27017 mongo
docker exec -it my-mongo mongo
// 使用mongoDB 4.x版本
docker pull mongodb/mongodb-community-server:4.4.2-ubuntu2004-20230514T053842Z
docker run -d --name my-mongo -p 27017:27017 镜像id
docker exec -it my-mongo mongo
// 配置docker代理 下载镜像
root@localhost docker.service.d\]# pwd /etc/systemd/system/docker.service.d \[root@localhost docker.service.d\]# cat http-proxy.conf \[Service
Environment="HTTP_PROXY=http://192.168.xx.xx:7890"
Environment="HTTPS_PROXY=http://192.168.xx.xx:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
🚪进入 Mongo Shell 后的第一步
你进入后会看到类似提示符:
            
            
              bash
              
              
            
          
          >说明已经进入 Mongo Shell,现在就可以操作数据库了。
🧾 1. 查看当前数据库
            
            
              js
              
              
            
          
          db默认是 test 数据库。
🗂️ 2. 查看所有数据库
            
            
              js
              
              
            
          
          show dbs如果没有手动插入数据,有些数据库可能不会显示。
🧱 3. 创建 / 切换数据库
            
            
              js
              
              
            
          
          use mydb🔸注意:MongoDB 会在你首次向这个库写入数据时才真正创建它。
📂 4. 创建集合(类似表)
            
            
              js
              
              
            
          
          db.createCollection("users")不过你也可以直接插入文档,MongoDB 会自动创建集合:
            
            
              js
              
              
            
          
          db.users.insertOne({ name: "Lily", age: 24 })插入的文档是会被插入到你当前所在的数据库中的集合 users 中
📥 5. 插入数据
插入单条文档:
            
            
              js
              
              
            
          
          db.users.insertOne({ name: "Nova", age: 22 })插入多条文档:
            
            
              js
              
              
            
          
          db.users.insertMany([
  { name: "Qianjue", age: 25 },
  { name: "Luna", age: 30 }
])🔍 6. 查询数据
查询全部:
            
            
              js
              
              
            
          
          db.users.find()美化显示:
            
            
              js
              
              
            
          
          db.users.find().pretty()查询条件:
            
            
              js
              
              
            
          
          db.users.find({ age: { $gt: 24 } })  // 查找 age > 24 的用户✏️ 7. 更新数据
            
            
              js
              
              
            
          
          db.users.updateOne(
  { name: "Lily" },
  { $set: { age: 26 } }
)❌ 8. 删除数据
删除一条:
            
            
              js
              
              
            
          
          db.users.deleteOne({ name: "Lily" })删除多条:
            
            
              js
              
              
            
          
          db.users.deleteMany({ age: { $lt: 25 } })🧾 9. 查看集合列表
            
            
              js
              
              
            
          
          show collections🔐 10. 创建用户(可用于认证)
如果你还没设置好权限模式,创建用户可以这样:
            
            
              js
              
              
            
          
          use admin
db.createUser({
  user: "myuser",
  pwd: "mypassword",
  roles: [ { role: "readWrite", db: "mydb" } ]
})📌 总结:常用命令清单
| 操作 | 命令 | 
|---|---|
| 查看数据库 | show dbs | 
| 切换数据库 | use dbname | 
| 查看集合 | show collections | 
| 插入文档 | insertOne/insertMany | 
| 查询文档 | find() | 
| 更新文档 | updateOne()/updateMany() | 
| 删除文档 | deleteOne()/deleteMany() | 
| 创建集合 | createCollection() | 
| 创建用户 | db.createUser(...) | 
🧠 你可以先练习上面这些基本操作,对 MongoDB 的"无模式""JSON文档式结构"会有个感性认识。
MongoDB 创建用户命令
✅ 命令内容
            
            
              js
              
              
            
          
          use admin
db.createUser({
  user: "myuser",
  pwd: "mypassword",
  roles: [ { role: "readWrite", db: "mydb" } ]
})📖 一行一讲解
🔹 use admin
👉 表示切换到 admin 数据库。
MongoDB 的权限系统是和数据库绑定的,用户在哪个数据库下创建,就属于哪个数据库。
- 一般来说:
- 管理员账户建议放在 admin数据库下(相当于超级管理员作用域)
- 普通读写用户可以放在业务数据库下(如:mydb)
 
- 管理员账户建议放在 
💡 举一反三:
            
            
              js
              
              
            
          
          use mydb  // 如果你只想为 mydb 创建一个普通读写用户🔹 db.createUser({...})
这是创建用户的标准命令,格式如下:
            
            
              js
              
              
            
          
          db.createUser({
  user: "<用户名>",
  pwd: "<密码>",
  roles: [ ... ]
})✨ 参数详解:
| 参数名 | 含义 | 
|---|---|
| user | 用户名 | 
| pwd | 密码 | 
| roles | 用户权限列表,支持多个权限组合 | 
🔸 user: "myuser"
👉 创建的用户名是 "myuser"。你登录 MongoDB 时就可以这样连接:
            
            
              bash
              
              
            
          
          mongosh -u myuser -p mypassword --authenticationDatabase admin🔸 pwd: "mypassword"
👉 用户密码,配合用户名一起登录用。
⚠️ 不建议用过于简单的密码,生产环境要强密码 + TLS 连接。
🔸 roles: [ { role: "readWrite", db: "mydb" } ]
👉 这个数组定义了 用户的权限角色,每个角色有两个部分:
| 字段 | 说明 | 
|---|---|
| role | 角色名,比如 readWrite、read、dbAdmin、root等 | 
| db | 授权作用的数据库 | 
这行的含义是:
给这个用户 myuser,在 mydb 数据库上分配 readWrite 权限。
📚 常用权限角色参考表
| 角色名 | 权限说明 | 
|---|---|
| read | 只读(查询数据) | 
| readWrite | 读写(增删改查) | 
| dbAdmin | 管理数据库结构(如建表、索引) | 
| userAdmin | 管理用户(创建、修改权限) | 
| root | 超级权限(所有数据库全部权限) | 
🎯 举一反三案例
🌟 创建只读用户:
            
            
              js
              
              
            
          
          use mydb
db.createUser({
  user: "reader",
  pwd: "123456",
  roles: [ { role: "read", db: "mydb" } ]
})🌟 创建多权限用户:
            
            
              js
              
              
            
          
          use admin
db.createUser({
  user: "adminuser",
  pwd: "adminpass",
  roles: [
    { role: "readWrite", db: "mydb" },
    { role: "dbAdmin", db: "mydb" },
    { role: "userAdmin", db: "admin" }
  ]
})🌟 创建超级用户:
            
            
              js
              
              
            
          
          use admin
db.createUser({
  user: "root",
  pwd: "123456",
  roles: [ { role: "root", db: "admin" } ]
})🧠 总结理解图:
一个用户(user)
 └── 拥有多个角色(roles)
       └── 每个角色作用于某个数据库(db)
             └── 给定的权限类型(role: read / write / admin)MongoDB 是基于 数据库级别的权限模型,不像 MySQL 那样跨库授权,权限是"在哪个库就对哪个库有效"。