MongoDB 数据库与认证操作
Mongo Database
数据库(Database)在 MongoDB 中是一个顶级容器,用于组织和存储集合(Collections)。每个数据库可以包含多个集合,而每个集合又可以包含多个文档(Documents)。以下是 MongoDB 数据库的详解和一些操作注意事项:
数据库的特点
独立性:每个数据库是相互独立的,有自己的权限设置和存储空间。
命名空间:数据库名是大小写敏感的,且不能包含以下字符:
/\. "$*<>:|?集合的分组:数据库可以通过集合来组织和存储数据,方便管理和查询。
权限控制:MongoDB 支持对数据库进行权限控制,可以通过用户角色和权限来管理数据库访问。
备份和恢复:MongoDB 提供了备份和恢复数据库的功能,方便进行数据的备份和恢复操作。
操作注意事项
创建数据库:
use mydatabase只切换当前数据库上下文。数据库尚不存在时,首次写入数据或显式创建集合才会实际创建相应数据库和集合。参见官方数据库与集合说明。切换数据库:使用
use命令可以切换当前操作的数据库。例如,要切换到mydatabase,可以执行use mydatabase。查看当前数据库:可以使用
db命令查看当前正在使用的数据库。例如,执行db命令会显示当前数据库的名称。查看所有数据库:可以使用
show dbs命令来查看 MongoDB 中所有的数据库列表。删除数据库:可以使用
db.dropDatabase()命令来删除当前数据库。请谨慎执行此操作,删除数据库会同时删除其中的所有集合和文档。备份和恢复:可以使用
mongodump和mongorestore命令来进行 MongoDB 数据库的备份和恢复操作。权限管理:MongoDB 支持对数据库进行权限管理,可以使用
db.createUser()命令创建用户并分配权限,以控制用户对数据库的访问。性能优化:在设计数据库时,应考虑到数据的结构和索引的设计,以及合理利用 MongoDB 提供的分片和复制等功能来优化性能。
监控和管理:定期监控数据库的性能和运行状态,及时处理异常和优化配置,保证数据库的稳定运行。
连接数据库
原记录使用旧版 mongo shell;当前操作请使用与部署兼容的 mongosh。下面只解释连接参数,不代表已连接或验证某个环境。
- 主机与端口:
DB_HOST、DB_PORT替换为目标实例地址。 - 用户:
DB_USER替换为有权限的账号。 - 认证库:
--authenticationDatabase admin指用户创建于 admin;数据读写所在的库可不同。应以实际账号创建位置为准。 - 密码:使用交互式提示输入,避免把密码写入文档或 shell 历史。
mongosh --host DB_HOST --port DB_PORT --username DB_USER --authenticationDatabase admin --password
历史命令中的 mongo 与上述 mongosh 不应混当同一个客户端版本。连接成功后先用 db 和 db.version() 核对上下文及服务端版本。
操作数据库
创建的数据库
mydatabase并不在数据库的列表中, 要显示它,我们需要向mydatabase数据库插入一些数据。
- 切换到 mydatabase 上下文(此时不保证已创建):
use mydatabase - 查看当前数据库:
db - 查看所有数据库列表:
show dbs - 向当前库的 mydatabase 集合首次写入(必要时创建库和集合):
db.mydatabase.insertOne({"name":"Example User"}) - 查看所有数据库列表:
show dbs - 查询版本信息:
db.version() - 实例的状态信息:
db.serverStatus() - 实例的内存使用情况:
db.runCommand({ serverStatus: 1, mem: 1 }) - 实例的存储引擎信息:
db.runCommand({ engineStatus: 1 }) - 查看数据库状态:
db.stats()
继续阅读
- 知识专题
- 应用实践
- 知识专题