
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
MongoDB数据库的学习与应用是目前大多数软件编程开发程序员都需要熟练掌握的一个数据库类型,今天我们就通过案例分析来简单了解一下,MongoDB数据库入门指南分享。
核心进程
在MongoDB中,核心进程主要包含了mongod、mongos和mongosh三个。
其中主要的是mongod程序,其在不同的部署方案中(单机部署、副本集部署、分片集群部署),通过不同的配置,可以扮演多种不同的角色:
在单机部署中作为数据库服务器(提供所有读写功能)
在副本集部署中,通过配置,可以部署为Primary节点(负责写数据,也可以提供查询)、Secondary节点(从主节点复制数据,也可以提供查询)、以及Arbiter节点(不保存数据,主要用于参与选举投票)
在分片集群中,除了在每个分片中扮演上述角色外,还扮演着配置服务器的角色(存储有分片集群的所有元数据信息,mongos的数据路由分发等都要依赖于它)
在一台服务器上,可以启动多个mongod服务。但在实际生产部署中,通常是建议一台服务器部署一个mongod实例,这样不仅减少资源竞争,而且服务器故障也不会同时影响到多个服务。
mongos在分片集群中扮演路由的角色,提供客户端和分片之间的接口。
mongosh是MongoDB集成的交互式shell工具。
数据库工具
MongoDB数据库工具是用于处理MongoDB部署的命令行实用程序的集合。数据库工具包括以下二进制文件:
二进制导入导出
mongodump:导出mongod数据库的二进制数据
mongorestore:恢复mongodump导出文件的数据到mongod或mongos数据库
bsondump:转换BSON导出文件成JSON格式
数据导入导出
mongoimport:从外部JSON、CSV或TSV文件中加载数据
mongoexport:从mongod实例中导出数据到JSON或CSV文件中
诊断工具
mongostat:快速诊断当前运行的mongod或mongos实例的状态
mongotop:统计mongod实例读取和写入数据的时间
GridFS工具
mongofiles:支持在GridFS对象中操作MongoDB实例中存储的文件
数据逻辑结构
MongoDB数据逻辑结构分为数据库database、集合collection、文档document三层:
一个mongod实例中允许创建多个数据库
一个数据库中允许创建多个集合,集合相当于关系型数据库的表
一个集合则是由若干个文档构成,文档相当于关系型数据库的行,是MongoDB中数据的基本单元
数据库
一个数据库中可以创建多个集合,原则上应把逻辑相近的集合都放在一个数据库中。
在MongoDB中,会有以下几个内建的数据库:
admin:存放有数据库帐号相关信息,在身份验证和授权时使用
local:特定于单个服务器的数据会存储在此数据库中。在副本集中,local数据库用于存储复制过程中所使用的数据,而其本身不会被复制。
config:用于分片集群环境,存放了分片相关的元数据信息
test:默认创建的测试库,连接mongod服务时,如果不指定连接的具体数据库,默认就会连接到test数据库
集合
和SQL的表不同,集合是动态模式,不需要在读写数据前创建模式就可以使用,集合中的文档也可以拥有不同的字段,随时可以任意增减某个文档的字段。
默认情况下,集合不要求其文档具有相同的模式,但这是一种很好的实践。可以通过使用MongoDB的文档验证功能和可用于多种编程语言的对象–文档映射(object-documentmapping)库来实现文档验证。
集合由其名称进行标识,集合名称可以是任意UTF-8字符串,但有以下限制:
不能是空字符串("")。
不能含有\0(空字符),这个字符用于表示集合名称的结束
不能以system.开头,该前缀为内部集合保留
集合名称使用.字符可以创建子集合,用与区分不同组织集合。虽然子集合没有任何特殊属性,但它们很有用,许多MongoDB工具整合了子集合。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。