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

网站防护找谁做wordpress创建搜索框

网站防护找谁做,wordpress创建搜索框,网上商城名字大全,wordpress行业模版以下是基于Spring Boot操作MongoDB的完整示例大全&#xff0c;涵盖增删改查、聚合查询、索引、事务等核心功能&#xff1a; 一、基础CRUD操作 1. 环境配置 依赖配置&#xff08;pom.xml&#xff09; <dependency><groupId>org.springframework.boot</groupId…

以下是基于Spring Boot操作MongoDB的完整示例大全,涵盖增删改查、聚合查询、索引、事务等核心功能:


一、基础CRUD操作

1. 环境配置

依赖配置(pom.xml)

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

核心配置(application.yml)

spring:data:mongodb:uri: mongodb://root:123456@192.168.3.11:27017/mydb?authSource=admin# 或分开配置host: 192.168.3.11port: 27017username: rootpassword: 123456authentication-database: admin

2. 实体类定义

@Data
@Document(collection = "users") // 指定集合名
public class User {@Idprivate String id;@Indexed(direction = IndexDirection.ASCENDING) // 单字段索引private String name;@TextIndexed // 全文索引private String email;private Integer age;private Date createDate;
}

3. Repository接口

public interface UserRepository extends MongoRepository<User, String> {// 方法名推导查询List<User> findByName(String name);// 自定义JSON查询@Query("{ 'age' : { $gt: ?0 } }")List<User> findByAgeGreaterThan(int age);
}

4. MongoTemplate操作

@Autowired
private MongoTemplate mongoTemplate;// 插入文档
User user = new User();
user.setId(UUID.randomUUID().toString());
user.setName("Alice");
mongoTemplate.insert(user); // 插入单个文档// 查询所有
List<User> users = mongoTemplate.findAll(User.class);// 根据ID查询
User user = mongoTemplate.findById("1001", User.class);// 条件查询
Query query = new Query();
query.eq("name", "Alice").gt("age", 20);
List<User> result = mongoTemplate.find(query, User.class);// 更新文档
Update update = new Update();
update.set("name", "NewName").inc("age", 1);
mongoTemplate.updateFirst(Query.query(Criteria.where("id").is("1001")), update, User.class);// 删除文档
mongoTemplate.remove(Query.query(Criteria.where("id").is("1001")), User.class);

二、聚合查询操作

1. 使用Aggregation API

// 聚合管道:匹配+分组统计
Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(Criteria.where("age").gt(18)), // 过滤年龄>18Aggregation.group("department") // 按部门分组.count().as("total") // 统计人数.avg("salary").as("avgSalary"), // 计算平均工资Aggregation.sort(Sort.Direction.DESC, "total") // 按总人数降序排序
);// 执行聚合
AggregationResults<Document> results = mongoTemplate.aggregate(aggregation, "users", Document.class);

2. 原生JSON聚合

// 直接使用JSON格式定义聚合管道
String pipeline = "[{ $match: { age: { $gt: 18 } } }, " +"{ $group: { _id: '$department', total: { $sum: 1 }, avgSalary: { $avg: '$salary' } } }, " +"{ $sort: { total: -1 } }]";AggregationResults<Document> results = mongoTemplate.aggregate(new BasicQuery(pipeline), "users", Document.class);

三、高级功能实现

1. 全文搜索

// 1. 创建文本索引
@TextIndexed
private String title;// 2. 使用TextCriteria查询
public List<Note> searchNotes(String keyword) {TextCriteria criteria = TextCriteria.forDefaultLanguage().matching(keyword);Query query = new Query(criteria);return mongoTemplate.find(query, Note.class);
}

2. 事务管理

@Configuration
@EnableTransactionManagement
public class MongoConfig {@Beanpublic MongoTransactionManager transactionManager(MongoDatabaseFactory factory) {return new MongoTransactionManager(factory);}
}// 服务层使用@Transactional
@Service
public class TransferService {@Transactionalpublic void transferMoney(String fromId, String toId, double amount) {// 扣减转出账户mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(fromId)), new Update().inc("balance", -amount), Account.class);// 增加转入账户mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(toId)), new Update().inc("balance", amount), Account.class);}
}

3. 连接池调优

spring:data:mongodb:uri: mongodb://user:pass@host:27017/db?maxIdleTimeMS=300000&maxPoolSize=100&minPoolSize=10&maxWaitTimeMS=1000

四、性能优化技巧

1. 分页查询

// 使用Pageable实现分页
Pageable pageable = PageRequest.of(0, 10, Sort.by("age").descending());
Query query = new Query().with(pageable);
List<User> users = mongoTemplate.find(query, User.class);

2. 复合索引

@CompoundIndexes({@CompoundIndex(name = "name_age_index", def = "{'name': 1, 'age': -1}")
})
public class User {}

3. 地理位置查询

// 创建2D索引
@Field(store = true, indexDirection = Direction.GEO2D)
private Point location;// 查询附近5公里内的用户
Query query = new Query();
query.near("location", new GeoJsonPoint(116.4, 39.9)).maxDistance(5000);
List<User> nearbyUsers = mongoTemplate.find(query, User.class);

五、常见异常处理

  1. 连接超时:检查URI配置和网络连通性,适当增加connectTimeoutMS
  2. 查询无结果:确认数据存在且索引生效,可使用hint()强制指定索引
  3. 事务冲突:确保操作集合已存在并启用副本集
  4. 内存溢出:聚合查询时添加allowDiskUse(true)

完整代码示例可参考CSDN专题教程,生产环境建议结合分库分表、读写分离等高级架构设计。

http://www.dtcms.com/a/574456.html

相关文章:

  • 【雷达跟踪滤波例程】3个雷达的三维目标跟踪滤波系统,目标匀速运动,滤波为扩展卡尔曼|雷达观测:斜距、俯仰角、方位角。MATLAB,附下载链接
  • Go红队开发—图形化界面
  • 测开百日计划——Day1
  • 一些工具的使用
  • MATLAB多子种群混沌自适应哈里斯鹰算法优化BP神经网络回归预测
  • 红外体温产品开发踩坑后,我发现谷德 0.05℃精度的红外体温芯片居然自带免费算法?
  • 周口师范做网站好的网站建设网
  • 无锡网站wordpress 3.8.1
  • 巫山做网站哪家强wordpress 升级提示
  • 探索 MCP 生态与边缘智能体部署的家常话
  • 商城网站建设推广手机网站特效代码
  • MIT-0-1背包问题
  • AI+近红外:实现粮食质量快速检测的智能化升级——从单指标到多指标同步预测的技术飞跃
  • 注册电气工程师报考条件网站优化 套站
  • 兰州大学网页与网站设计最好玩的网站
  • wap建站系统创意设计工作室
  • MCU单片机驱动WS2812,点亮RGB灯带各种效果
  • 公司的服务器能建设网站吗网站如何做移动适配
  • 嘉兴做网站优化多少钱网站搜索引擎友好性
  • 正规网站建设公司哪家好wordpress js被挂木马
  • 贵州省建设厅网站查合肥网站排名优化公司
  • 什么是接口测试?为什么要做接口测试?
  • 淘宝网站制作教程北京网站建设东轩seo
  • 无锡公司建立网站佛山企业用seo策略
  • 24.系统日志查看方法与实战
  • WordPress软件连接不了网站宁波建设监理协会网站
  • 网站网络安全怎么做如何提高网站百度权重
  • Openmetadata数据质量管理-新增自定义测试类型
  • 49-基于ZigBee的室内甲醛监测系统设计与实现
  • 一文读懂稳态太阳光模拟器