欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > #MongoDB 快速上手

#MongoDB 快速上手

2025/4/17 17:44:33 来源:https://blog.csdn.net/weixin_48668249/article/details/147041536  浏览:    关键词:#MongoDB 快速上手

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 后的第一步

你进入后会看到类似提示符:

>

说明已经进入 Mongo Shell,现在就可以操作数据库了。


🧾 1. 查看当前数据库

db

默认是 test 数据库。


🗂️ 2. 查看所有数据库

show dbs

如果没有手动插入数据,有些数据库可能不会显示。


🧱 3. 创建 / 切换数据库

use mydb

🔸注意:MongoDB 会在你首次向这个库写入数据时才真正创建它。


📂 4. 创建集合(类似表)

db.createCollection("users")

不过你也可以直接插入文档,MongoDB 会自动创建集合:

db.users.insertOne({ name: "Lily", age: 24 })

插入的文档是会被插入到你当前所在的数据库中的集合 users 中


📥 5. 插入数据

插入单条文档:

db.users.insertOne({ name: "Nova", age: 22 })

插入多条文档:

db.users.insertMany([{ name: "Qianjue", age: 25 },{ name: "Luna", age: 30 }
])

🔍 6. 查询数据

查询全部:

db.users.find()

美化显示:

db.users.find().pretty()

查询条件:

db.users.find({ age: { $gt: 24 } })  // 查找 age > 24 的用户

✏️ 7. 更新数据

db.users.updateOne({ name: "Lily" },{ $set: { age: 26 } }
)

❌ 8. 删除数据

删除一条:

db.users.deleteOne({ name: "Lily" })

删除多条:

db.users.deleteMany({ age: { $lt: 25 } })

🧾 9. 查看集合列表

show collections

🔐 10. 创建用户(可用于认证)

如果你还没设置好权限模式,创建用户可以这样:

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 创建用户命令

✅ 命令内容

use admindb.createUser({user: "myuser",pwd: "mypassword",roles: [ { role: "readWrite", db: "mydb" } ]
})

📖 一行一讲解


🔹 use admin

👉 表示切换到 admin 数据库。

MongoDB 的权限系统是和数据库绑定的,用户在哪个数据库下创建,就属于哪个数据库。

  • 一般来说:
    • 管理员账户建议放在 admin 数据库下(相当于超级管理员作用域)
    • 普通读写用户可以放在业务数据库下(如:mydb

💡 举一反三:

use mydb  // 如果你只想为 mydb 创建一个普通读写用户

🔹 db.createUser({...})

这是创建用户的标准命令,格式如下:

db.createUser({user: "<用户名>",pwd: "<密码>",roles: [ ... ]
})

✨ 参数详解:

参数名含义
user用户名
pwd密码
roles用户权限列表,支持多个权限组合

🔸 user: "myuser"

👉 创建的用户名是 "myuser"。你登录 MongoDB 时就可以这样连接:

mongosh -u myuser -p mypassword --authenticationDatabase admin

🔸 pwd: "mypassword"

👉 用户密码,配合用户名一起登录用。

⚠️ 不建议用过于简单的密码,生产环境要强密码 + TLS 连接。


🔸 roles: [ { role: "readWrite", db: "mydb" } ]

👉 这个数组定义了 用户的权限角色,每个角色有两个部分:

字段说明
role角色名,比如 readWritereaddbAdminroot
db授权作用的数据库
这行的含义是:

给这个用户 myuser,在 mydb 数据库上分配 readWrite 权限。


📚 常用权限角色参考表

角色名权限说明
read只读(查询数据)
readWrite读写(增删改查)
dbAdmin管理数据库结构(如建表、索引)
userAdmin管理用户(创建、修改权限)
root超级权限(所有数据库全部权限)

🎯 举一反三案例

🌟 创建只读用户:

use mydb
db.createUser({user: "reader",pwd: "123456",roles: [ { role: "read", db: "mydb" } ]
})

🌟 创建多权限用户:

use admin
db.createUser({user: "adminuser",pwd: "adminpass",roles: [{ role: "readWrite", db: "mydb" },{ role: "dbAdmin", db: "mydb" },{ role: "userAdmin", db: "admin" }]
})

🌟 创建超级用户:

use admin
db.createUser({user: "root",pwd: "123456",roles: [ { role: "root", db: "admin" } ]
})

🧠 总结理解图:

一个用户(user)└── 拥有多个角色(roles)└── 每个角色作用于某个数据库(db)└── 给定的权限类型(role: read / write / admin)

MongoDB 是基于 数据库级别的权限模型,不像 MySQL 那样跨库授权,权限是“在哪个库就对哪个库有效”。


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词