MongoDB实战(1)MongoDB安装与存储结构

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

一、linux平台的安装

1
2
3
4
5
6
7
wget http: //fastdl .mongodb.org /linux/mongodb-linux-x86_64-2 .4.8.tgz
tar  -zxvf mongodb-linux-x86_64-2.4.8.tgz
#创建数据存放目录和日志目录
/data/db
/data/log/mongo .log
#启动mongod服务进程 --fork后台运行
/mongodb/bin/mongod  --dbpath= /data/db  --logpath= /data/log/mongo .log --fork

然后可以进入mongodb客户端进行测试了

1
/mongodb/bin/mongo

230021448.png

二、数据逻辑结构

MongoDB的文档document相当于关系数据库中的一行记录。
多个文档组成一个集合collection相当于关系数据库的表。
多个集合collection逻辑上组织在一起就是数据库database。
一个MongoDB实例支持多个数据库database。
文档(document)、集合(collection)、数据库(database)的层次结构如下图:

220654453.png

对于习惯了关系型数据库的朋友们我将MongoDB与关系型数据库的逻辑结构进行了对比
以便让大家更深刻的理解MongoDB的逻辑结构

233527487.png

MongoDB的默认数据目录是/data/db它负责存储所有的MongoDB的数据文件。在MongoDB
内部每个数据库都包含一个.ns文件和一些数据文件而且这些数据文件会随着数据量的
增加而变得越来越多。所以如果系统中有一个叫做test的数据库那么构成test这个数据库
的文件就会由test.nstest.0test.1test.2等等组成具体如下:

230919752.png

数据库的每张表都对应一个命名空间每个索引也有对应的命名空间。这些命名空间的元数
据都集中在*.ns文件中。

MongoDB内部有预分配空间的机制每个预分配的文件都从*.0开始由于有了这个机
制,MongoDB始终保持额外的空间和空余的数据文件从而有效避免了由于数据暴增而带来
的磁盘压力过大的问题。
由于表中数据量的增加数据文件每新分配一次它的大小都会是上一个数据文件大小的2
倍所以我们看到test.1的大小是test.0的2倍。每个数据文件最大2G。这样的机制有利于防止较小的数据库浪费过多的磁盘空间同时又能保证较大的数据库有相应的预留空间使用。

当命名空间需要分配新的文件的时候都会先检查是否有已经删除的大小合适的盘区可以使用这样就回收空闲的磁盘空间了。






















本文转自shayang8851CTO博客,原文链接:http://blog.51cto.com/janephp/1322407,如需转载请自行联系原作者

相关文章
|
1月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
206 18
|
8月前
|
存储 NoSQL API
微服务——MongoDB实战演练——需求分析
本文档《5-MongoDB实战演练》聚焦于某头条文章评论业务的需求分析与功能实现。基于MongoDB,需完成以下功能:1)提供基本的增删改查API;2)支持通过文章ID查询相关评论;3)实现评论点赞功能。结合实际业务场景,演示MongoDB在数据存储与操作中的应用,附带示意图帮助理解业务结构。
132 2
微服务——MongoDB实战演练——需求分析
|
8月前
|
NoSQL MongoDB 微服务
微服务——MongoDB实战演练——文章评论的基本增删改查
本节介绍了文章评论的基本增删改查功能实现。首先,在`cn.itcast.article.dao`包下创建数据访问接口`CommentRepository`,继承`MongoRepository`以支持MongoDB操作。接着,在`cn.itcast.article.service`包下创建业务逻辑类`CommentService`,通过注入`CommentRepository`实现保存、更新、删除及查询评论的功能。最后,新建Junit测试类`CommentServiceTest`,对保存和查询功能进行测试,并展示测试结果截图,验证功能的正确性。
176 2
|
8月前
|
NoSQL Java MongoDB
微服务——MongoDB实战演练——文章评论实体类的编写
本节主要介绍文章评论实体类的编写,创建了包`cn.itcast.article.po`用于存放实体类。具体实现中,`Comment`类通过`@Document`注解映射到MongoDB的`comment`集合,包含主键、内容、发布时间、用户ID、昵称等属性,并通过`@Indexed`和`@CompoundIndex`注解添加单字段及复合索引,以提升查询效率。同时提供了Mongo命令示例,便于理解和操作。
153 2
|
8月前
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——MongoTemplate实现评论点赞
本节介绍如何使用MongoTemplate实现评论点赞功能。传统方法通过查询整个文档并更新所有字段,效率较低。为优化性能,采用MongoTemplate对特定字段直接操作。代码中展示了如何利用`Query`和`Update`对象构建更新逻辑,通过`update.inc("likenum")`实现点赞数递增。测试用例验证了功能的正确性,确保点赞数成功加1。
183 0
|
8月前
|
NoSQL 测试技术 MongoDB
微服务——MongoDB实战演练——根据上级ID查询文章评论的分页列表
本节介绍如何根据上级ID查询文章评论的分页列表,主要包括以下内容:(1)在CommentRepository中新增`findByParentid`方法,用于按父ID查询子评论分页列表;(2)在CommentService中新增`findCommentListPageByParentid`方法,封装分页逻辑;(3)提供JUnit测试用例,验证功能正确性;(4)使用Compass插入测试数据并执行测试,展示查询结果。通过这些步骤,实现对评论的高效分页查询。
143 0
|
8月前
|
NoSQL MongoDB 微服务
微服务——MongoDB实战演练——文章微服务模块搭建
本节介绍文章微服务模块的搭建过程,主要包括以下步骤:(1)创建项目工程 *article*,并在 *pom.xml* 中引入依赖;(2)配置 *application.yml* 文件;(3)创建启动类 *cn.itcast.article.ArticleApplication*;(4)启动项目,确保控制台无错误提示。通过以上步骤,完成文章微服务模块的基础构建与验证。
113 0
|
5月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
614 4
|
8月前
|
NoSQL Java 测试技术
MongoDB实战演练
本文介绍了基于Spring Boot和MongoDB实现文章评论功能的完整流程。主要包括需求分析、表结构设计、技术选型(如mongodb-driver与SpringDataMongoDB)、项目搭建及配置、实体类编写、基本增删改查功能实现、分页查询以及点赞功能的开发。通过Comment实体类、CommentRepository接口和CommentService服务层,实现了评论的存储、查询及更新操作,并利用MongoTemplate优化了点赞功能的性能。最后通过JUnit测试验证各功能的正确性。该方案适合需要高效处理非结构化数据的文章评论系统开发。
MongoDB实战演练
|
8月前
|
NoSQL MongoDB 数据库
微服务——MongoDB实战演练——表结构分析
本文档来源于数据库articledb,展示了一张图片资源。图片宽度为1207像素,高度607像素,采用内联显示方式。内容涉及图像处理与样式设定,适用于文档或网页设计中多媒体元素的布局参考。图片来源为cdn.nlark.com,支持webp格式并附带水印处理。
118 1
微服务——MongoDB实战演练——表结构分析

推荐镜像

更多