本文共 3342 字,大约阅读时间需要 11 分钟。
MongoDB 如今是最流行的 NoSQL 数据库之一,被广泛应用于各行各业中。它以其灵活性、高性能和高可扩展性著称,深受开发者喜爱。作为一名技术爱好者,我在学习和实践过程中对 MongoDB 的基础知识以及它在 Spring Boot 项目中的应用流程进行了总结。下面将从 MongoDB 的简介、特点、安装操作、基本操作以及与 Spring Boot 的整合流程等方面分享我的学习心得。
MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写。它设计用于为 WEB 应用提供高性能的数据存储解决方案,适用于各种规模的企业和各类应用程序。与传统的关系型数据库不同,MongoDB 采用文档存储模式,其数据结构灵活且易于扩展。
易扩展性:MongoDB 使用分片技术,能够自动分片并平衡数据分布,去除了传统关系型数据库的关系性约束。
高性能:它支持实时插入操作,同时具备高效的查询能力,适合实时数据处理。
高伸缩性:MongoDB 适合由数十或数百台服务器组成的分布式系统,内置 MapReduce 引擎支持大规模数据处理。
存储动态性:文档存储模式允许属性字段动态添加和删除,避免了传统数据库对结构的严格约束。
速度与持久性:MongoDB 提供快速的写入速度,但需权衡网络不安全性。
SQL 术语 | MongoDB 术语 | 说明 |
---|---|---|
Database | Database | 数据库名称,MongoDB 支持多个数据库。 |
Table | Collection | 数据库中的集合,相当于关系型数据库的表。 |
Row | Document | 存储在集合中的文档,类似于关系型数据库的行。 |
Column | Field | 文档中的字段,类似于关系型数据库的列。 |
Index | Index | 索引优化查询性能,MongoDB 支持复合索引。 |
Table joins | No support | MongoDB 不支持表连接查询。 |
Primary key | Primary key | MongoDB 自动将 _id 字段设为主键。 |
在 CentOS 7 系统上安装 MongoDB:
安装依赖包:
sudo yum install libcurl openssl
下载 MongoDB:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.5.tgz
解压安装包:
tar -zxvf mongodb-linux-x86_64-rhel70-6.0.5.tgz
创建目录:
sudo mkdir -p /var/lib/mongosudo mkdir -p /var/log/mongodbsudo chown 777 /var/lib/mongosudo chown 777 /var/log/mongodb
配置 MongoDB:
创建配置文件mongodb.conf
:touch mongodb.conf
配置内容如下:
port=27017bind_ip=0.0.0.0dbpath=/var/lib/mongologpath=/var/log/mongodb/mongod.logfork=trueauth=true
启动 MongoDB:
进入 MongoDB 安装目录并启动服务:cd /usr/local/mongodb/binmongod --config mongodb.conf
启动成功后,可以通过日志文件确认:
tail -10f /var/log/mongodb/mongod.log
MongoDB 提供交互式 Shell,用户可以通过命令直接操作数据库。以下是常用操作示例:
show databases
use test
db.createDatabase("test")
db.createCollection("userinfo")
show collections
db.userinfo.drop()
db.userinfo.insert({name: "李四", age: 25, gender: "男", address: "湖北"})
db.userinfo.find()
db.userinfo.find().sort({age: 1}).skip(20).limit(10)
db.userinfo.find({age: $gt: 20})
db.userinfo.find({age: $in: [16, 20]})
db.userinfo.update({name: "王五"}, $set: {address: "汉阳"})
db.userinfo.updateMany({age: 25}, $set: {age: 30})
db.userinfo.deleteOne({age: 25})
db.userinfo.deleteMany({age: 16})
在项目 pom.xml
中添加 MongoDB 支持:
org.springframework.boot spring-boot-starter-data-mongodb
修改 application.yml
文件:
spring: data: mongodb: uri: mongodb://localhost:27017/news
创建对应的实体类:
@Entity@Data@Document(collection = "policy")public class Policy { @Id private Integer id; private String bigTitle; private String childTitle; private String content; private Integer hits; private String creatTime;}
通过 MongoTemplate
实现数据操作:
public class PolicyServiceImpl implements PolicyService { @Autowired private MongoTemplate mongoTemplate; @Override public ListfindAll() { return mongoTemplate.findAll(Policy.class); } // 其他操作方法...}
如果需要更高级的操作,可以使用 MongoRepository
接口:
public interface MongoRepositoryTest extends MongoRepository{}
MongoDB 的学习过程充满了挑战,但随着对其特点和操作的理解,逐渐掌握了它的核心能力。通过 Spring Boot 的整合,能够更方便地将 MongoDB 与其他技术栈结合,实现高效的数据管理。在实践中,需要不断尝试和优化,才能更好地适应项目需求。
转载地址:http://rjffk.baihongyu.com/