MongoDB Database
Mongo Database
数据库(Database)在 MongoDB 中是一个顶级容器,用于组织和存储集合(Collections)。每个数据库可以包含多个集合,而每个集合又可以包含多个文档(Documents)。以下是 MongoDB 数据库的详解和一些操作注意事项:
数据库的特点
-
独立性:每个数据库是相互独立的,有自己的权限设置和存储空间。
-
命名空间:数据库名是大小写敏感的,且不能包含以下字符:
/\. "$*<>:|?
-
集合的分组:数据库可以通过集合来组织和存储数据,方便管理和查询。
-
权限控制:MongoDB 支持对数据库进行权限控制,可以通过用户角色和权限来管理数据库访问。
-
备份和恢复:MongoDB 提供了备份和恢复数据库的功能,方便进行数据的备份和恢复操作。
操作注意事项
-
创建数据库:在 MongoDB 中,可以使用
use
命令来创建数据库。例如,要创建一个名为mydatabase
的数据库,可以执行use mydatabase
。 -
切换数据库:使用
use
命令可以切换当前操作的数据库。例如,要切换到mydatabase
,可以执行use mydatabase
。 -
查看当前数据库:可以使用
db
命令查看当前正在使用的数据库。例如,执行db
命令会显示当前数据库的名称。 -
查看所有数据库:可以使用
show dbs
命令来查看 MongoDB 中所有的数据库列表。 -
删除数据库:可以使用
db.dropDatabase()
命令来删除当前数据库。请谨慎执行此操作,删除数据库会同时删除其中的所有集合和文档。 -
备份和恢复:可以使用
mongodump
和mongorestore
命令来进行 MongoDB 数据库的备份和恢复操作。 -
权限管理:MongoDB 支持对数据库进行权限管理,可以使用
db.createUser()
命令创建用户并分配权限,以控制用户对数据库的访问。 -
性能优化:在设计数据库时,应考虑到数据的结构和索引的设计,以及合理利用 MongoDB 提供的分片和复制等功能来优化性能。
-
监控和管理:定期监控数据库的性能和运行状态,及时处理异常和优化配置,保证数据库的稳定运行。
连接数据库
1
> 在你提供的命令中,你正在使用 `mongo` 命令连接到 MongoDB,同时提供了用户名、密码和认证数据库信息。让我为你解释一下这个命令的各个部分的含义:
-
连接数据库
mongo --host hostname --port port --username username --password password --authenticationDatabase admin
mongo --host 172.12.10.189 --port 10005 --username root --password root --authenticationDatabase admin
-
--host 172.12.10.189
: 指定 MongoDB 服务器的主机地址为172.12.10.189
,这是你要连接的 MongoDB 服务器的 IP 地址。 -
--port 10005
: 指定 MongoDB 服务器的端口号为10005
,这是 MongoDB 服务器监听的端口号。 -
--username root
: 指定要使用的用户名为root
,这是要连接到 MongoDB 服务器的用户名。 -
--password root
: 指定要使用的密码为root
,这是与用户名对应的密码。 -
--authenticationDatabase admin
: 指定用于认证的数据库为admin
,这是包含认证用户信息的数据库。
这个命令的执行目的是连接到指定的 MongoDB 服务器,并使用提供的用户名和密码进行身份验证,同时指定认证数据库为 admin
。如果提供的用户名和密码正确,连接将成功建立,并进入 mongo shell,允许你执行 MongoDB 相关的操作和查询。
- 也可以不指定:
mongo --host 172.12.10.189 --port 10005 --username root --password root
操作数据库
创建的数据库
mydatabase
并不在数据库的列表中, 要显示它,我们需要向mydatabase
数据库插入一些数据。
- 远程数据库:
mongo --host 172.12.10.189 --port 10005 --username root --password root
- 创建名为 mydatabase 的数据库:
use mydatabase
- 查看当前数据库:
db
- 查看所有数据库列表:
show dbs
- 插入一条数据:
db.mydatabase.insertOne({"name":"Cc"})
- 查看所有数据库列表:
show dbs
- 查询版本信息:
db.version()
- 实例的状态信息:
db.serverStatus()
- 实例的内存使用情况:
db.runCommand({ serverStatus: 1, mem: 1 })
- 实例的存储引擎信息:
db.runCommand({ engineStatus: 1 })
- 查看数据库状态:
db.stats()