# raven-mongodb-java **Repository Path**: mirrors/raven-mongodb-java ## Basic Information - **Project Name**: raven-mongodb-java - **Description**: raven-mongodb-java 是基于 mongodb-driver 的一些封装和增强,提供 orm 常用的数据库操作方法: 默认支持基于数据库实现自增 id - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/raven-mongodb-java - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-07 - **Last Updated**: 2025-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![Security Status](https://www.murphysec.com/platform3/v3/badge/1609167474302918656.svg)](https://www.murphysec.com/accept?code=525262e8fa030ee439a8e27f10097af7&type=1&from=2&t=2) ## 目录 - [核心特性](#features) - [快速开始](#quick-start) [//]: # (- [实体定义规范](#实体定义规范)) - **数据操作** - [查询操作](./docs/find.md) - [插入操作](./docs/insert.md) - [更新操作](./docs/update.md) - [删除操作](./docs/delete.md) - [原子操作](./docs/findAndModify.md) - [异步接口](./docs/reactive.md) - [高级功能](./docs/advanced.md) ## 核心特性 | features #### 基于 `mongodb-driver` 的一些封装和增强,提供 `orm` 常用的数据库操作方法: #### 1. 默认支持基于数据库实现自增id。 #### 2. 批量插入时,自动批量填充id。 #### 3. 避免不同 `entity` 版本的 `save` 方法导致数据覆盖问题等。 #### 4. 枚举对应的数值类型和字符串类型的支持。 #### 5. 提供 `EntityInterceptor` 接口,针对 `find`、`insert`、`update`、`delete` 等操作的预处理能力 #### 6. 提供优雅的链式写法。 #### 7. 提供同步操作和异步(reactive)操作方法。 #### 目的是简化写法、提高开发效率,以及避免一些问题。 ## 快速开始 | quick start ### 1. 添加依赖: ```xml io.github.raven-source raven-mongodb-spring-boot-starter 3.2.1 ``` ### 2. 配置文件: ```yaml mongodb.options.connString=mongodb://127.0.0.1:27017/? mongodb.options.dbName=TestDB ``` ### 3. 例如 `SpringBoot` 项目可以自定义个 `Configuration` 、实体对象、以及对应的 `UserRepository` : ```java @FieldNameConstants @Getter @Setter public class Orders implements AutoIncr { @BsonId private Long id; private Long uid; private Long itemsId; private String name; private Boolean isPay = Boolean.FALSE; private BigDecimal price; private Status status; } @Repository public interface OrdersRepository extends MongoRepository { } @SpringBootApplication @EnableMongoRepositories(basePackages = "org.demo.repository") @EnableConfigurationProperties public class Application { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(Application.class); springApplication.run(args); } } ``` ### 4. 开始查询 ```java Orders orders; // 根据id查询 orders = ordersRepository.findOne(1L); // 根据条件查询 orders = ordersRepository.findOne( // FilterBuilder f -> f .eq(Fields.status, Status.Normal) .gt(Fields.price, 9.0) ); ```