Post

MongoDB Database

Mongo Database

数据库(Database)在 MongoDB 中是一个顶级容器,用于组织和存储集合(Collections)。每个数据库可以包含多个集合,而每个集合又可以包含多个文档(Documents)。以下是 MongoDB 数据库的详解和一些操作注意事项:

数据库的特点

  1. 独立性:每个数据库是相互独立的,有自己的权限设置和存储空间。

  2. 命名空间:数据库名是大小写敏感的,且不能包含以下字符:/\. "$*<>:|?

  3. 集合的分组:数据库可以通过集合来组织和存储数据,方便管理和查询。

  4. 权限控制:MongoDB 支持对数据库进行权限控制,可以通过用户角色和权限来管理数据库访问。

  5. 备份和恢复:MongoDB 提供了备份和恢复数据库的功能,方便进行数据的备份和恢复操作。

操作注意事项

  1. 创建数据库:在 MongoDB 中,可以使用 use 命令来创建数据库。例如,要创建一个名为 mydatabase 的数据库,可以执行 use mydatabase

  2. 切换数据库:使用 use 命令可以切换当前操作的数据库。例如,要切换到 mydatabase,可以执行 use mydatabase

  3. 查看当前数据库:可以使用 db 命令查看当前正在使用的数据库。例如,执行 db 命令会显示当前数据库的名称。

  4. 查看所有数据库:可以使用 show dbs 命令来查看 MongoDB 中所有的数据库列表。

  5. 删除数据库:可以使用 db.dropDatabase() 命令来删除当前数据库。请谨慎执行此操作,删除数据库会同时删除其中的所有集合和文档。

  6. 备份和恢复:可以使用 mongodumpmongorestore 命令来进行 MongoDB 数据库的备份和恢复操作。

  7. 权限管理:MongoDB 支持对数据库进行权限管理,可以使用 db.createUser() 命令创建用户并分配权限,以控制用户对数据库的访问。

  8. 性能优化:在设计数据库时,应考虑到数据的结构和索引的设计,以及合理利用 MongoDB 提供的分片和复制等功能来优化性能。

  9. 监控和管理:定期监控数据库的性能和运行状态,及时处理异常和优化配置,保证数据库的稳定运行。

连接数据库

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()
This post is licensed under CC BY 4.0 by the author.