当前位置: 首页 > wzjs >正文

微信公众号自己微网站吗网站推广交换链接

微信公众号自己微网站吗,网站推广交换链接,做一个能注册用户的网站,光明区住房和建设局网站目录 1. MongoDB基础概念 什么是MongoDB? 核心概念对比 文档结构示例 2. MongoDB的特点与优势 主要特点 适用场景 3. MongoDB基本操作 基本CRUD操作 插入文档 查询文档 更新文档 删除文档 4. Spring Boot集成MongoDB 步骤1:添加依赖 步骤2:配置数据库连接 …

目录

1. MongoDB基础概念

什么是MongoDB?

核心概念对比

文档结构示例

2. MongoDB的特点与优势

主要特点

适用场景

3. MongoDB基本操作

基本CRUD操作

插入文档

查询文档

更新文档

删除文档

4. Spring Boot集成MongoDB

步骤1:添加依赖

步骤2:配置数据库连接

5. 实体类定义

基础实体类

嵌套对象类

6. Repository接口

基础Repository

自定义Repository实现

7. Service层实现

8. Controller层实现

9. 配置文件设置

application.yml完整配置

MongoDB配置类

10. 高级操作

聚合查询

事务支持

11. 最佳实践

1. 索引优化

2. 数据验证

3. 异常处理

12. 常见问题解决

问题1:连接超时

问题2:中文乱码

问题3:日期格式问题

问题4:大数据量查询性能问题

问题5:内存溢出

总结


1. MongoDB基础概念

什么是MongoDB?

MongoDB是一个基于文档的NoSQL数据库,它将数据存储为灵活的JSON样式文档,这意味着字段可以因文档而异,数据结构可以随时间变化。

核心概念对比

MongoDB关系型数据库说明
DatabaseDatabase数据库
CollectionTable集合/表
DocumentRow文档/行
FieldColumn字段/列

文档结构示例

{"_id": ObjectId("..."),"name": "张三","age": 25,"email": "zhangsan@example.com","hobbies": ["读书", "游泳", "编程"],"address": {"city": "北京","street": "朝阳区"}
}

2. MongoDB的特点与优势

主要特点

  • 文档导向:使用JSON格式存储数据
  • 无模式:同一集合中的文档可以有不同的结构
  • 高性能:支持索引,查询速度快
  • 高可用性:支持副本集
  • 水平扩展:支持分片

适用场景

  • 内容管理系统
  • 实时分析
  • 物联网应用
  • 移动应用后端
  • 大数据处理

3. MongoDB基本操作

基本CRUD操作

插入文档
// 插入单个文档
db.users.insertOne({name: "张三",age: 25,email: "zhangsan@example.com"
})// 插入多个文档
db.users.insertMany([{name: "李四", age: 30},{name: "王五", age: 28}
])
查询文档
// 查询所有文档
db.users.find()// 条件查询
db.users.find({age: {$gte: 25}})// 查询单个文档
db.users.findOne({name: "张三"})
更新文档
// 更新单个文档
db.users.updateOne({name: "张三"},{$set: {age: 26}}
)// 更新多个文档
db.users.updateMany({age: {$lt: 30}},{$inc: {age: 1}}
)
删除文档
// 删除单个文档
db.users.deleteOne({name: "张三"})// 删除多个文档
db.users.deleteMany({age: {$lt: 18}})

4. Spring Boot集成MongoDB

步骤1:添加依赖

pom.xml中添加MongoDB依赖:

<dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Starter Data MongoDB --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><!-- Spring Boot Starter Test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

步骤2:配置数据库连接

application.yml中配置:

spring:data:mongodb:host: localhostport: 27017database: myapp# 如果有认证# username: admin# password: password

5. 实体类定义

基础实体类

package com.example.entity;import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;import java.time.LocalDateTime;
import java.util.List;@Document(collection = "users") // 指定集合名称
public class User {@Idprivate String id; // MongoDB会自动生成ObjectId@Field("user_name") // 自定义字段名称private String name;private Integer age;private String email;private List<String> hobbies;private Address address; // 嵌套对象private LocalDateTime createTime;private LocalDateTime updateTime;// 构造方法public User() {}public User(String name, Integer age, String email) {this.name = name;this.age = age;this.email = email;this.createTime = LocalDateTime.now();this.updateTime = LocalDateTime.now();}// Getter和Setter方法public String getId() { return id; }public void setId(String id) { this.id = id; }public String getName() { return name; }public void setName(String name) { this.name = name;this.updateTime = LocalDateTime.now();}public Integer getAge() { return age; }public void setAge(Integer age) { this.age = age;this.updateTime = LocalDateTime.now();}public String getEmail() { return email; }public void setEmail(String email) { this.email = email;this.updateTime = LocalDateTime.now();}public List<String> getHobbies() { return hobbies; }public void setHobbies(List<String> hobbies) { this.hobbies = hobbies; }public Address getAddress() { return address; }public void setAddress(Address address) { this.address = address; }public LocalDateTime getCreateTime() { return createTime; }public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; }public LocalDateTime getUpdateTime() { return updateTime; }public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; }@Overridepublic String toString() {return "User{" +"id='" + id + '\'' +", name='" + name + '\'' +", age=" + age +", email='" + email + '\'' +", hobbies=" + hobbies +", address=" + address +", createTime=" + createTime +", updateTime=" + updateTime +'}';}
}

嵌套对象类

package com.example.entity;public class Address {private String city;private String street;private String zipCode;public Address() {}public Address(String city, String street, String zipCode) {this.city = city;this.street = street;this.zipCode = zipCode;}// Getter和Setter方法public String getCity() { return city; }public void setCity(String city) { this.city = city; }public String getStreet() { return street; }public void setStreet(String street) { this.street = street; }public String getZipCode() { return zipCode; }public void setZipCode(String zipCode) { this.zipCode = zipCode; }@Overridepublic St
http://www.dtcms.com/wzjs/782166.html

相关文章:

  • 松原市建设局网站投诉中心怎么注册网络平台
  • 中建八局土木建设有限公司网站wordpress主页空白
  • 企业门户网站建设 验收商务网站建设与管理实训总结
  • 天津网站制作系统代理免费注册公司
  • 网站建设新闻+常识凡科互动小程序怎么解封
  • 无锡网站商城建设建筑设计网站issuu
  • 整合营销网站提供网站建设的各类服务
  • 能制作网站的软件找印度人做网站
  • android高级开发seo关键词挖掘
  • 那片海dede织梦源码企业网络公司工作室网站模板源码模板php校园活动策划
  • 泰安网站建设泽讯周村网站建设yx718
  • 网站建设与网络编辑课程心得wordpress做seo合适吗
  • 单位网站服务的建设及维护弋阳网站建设制作
  • 怎么开一个做网站的工作室网页设计宣传海报素材
  • 大悟网站开发海南房产
  • 网站建设与维护蒋勇从门户网站建设工作方案
  • 深圳建设交易信息网站全国企业信用公示信息公示网官网
  • 个人网站模板html 下载腾讯云买域名
  • 青海省住房和城乡建设厅网站首页小程序是怎么制作出来的
  • 网站做建筑三维图如何制作网站后台管理系统
  • 班级网站布局wordpress配置虚拟主机
  • 中国建设工程造价协会网站辽宁工程建设工程信息网
  • 立网站系学校网站建设案例
  • 网站的免费空间是什么seo常用优化技巧
  • 成功案例展示网站58同城做网站的电话
  • 徐州开发区中学网站网站建设不能持续消费
  • 企业网站的建设一般要素有平面设计软件学哪个比较好
  • 定制网站开发成本估算表专门帮做ppt的网站吗
  • 上海交通大学网站建设怎么将自己做的网站放到网上
  • 网站 主办单位性质 个人快速做网站公司报价