可昕之家

可昕之家

张先生

平淡如水,爱护家人,好好工作

57 文章数
0 评论数

Spring Boot 和 MongoDB 的 批量查询、修改、删除 完整代码示例

张清磊
2025-04-24 / 0 评论 / 54 阅读 / 0 点赞

1️⃣ 环境准备

依赖pom.xml):

<dependencies>
    <!-- Spring Boot Starter Data MongoDB -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <!-- Lombok(可选) -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

<dependencies>
    <!-- Spring Boot Starter Data MongoDB -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <!-- Lombok(可选) -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

**实体类**(示例):

@Data
@Document(collection = "users") // 对应MongoDB集合名
public class User {
@Id
private String id;
private String name;
private Integer age;
private Boolean active;
}

@Data
@Document(collection = "users") // 对应MongoDB集合名
public class User {
@Id
private String id;
private String name;
private Integer age;
private Boolean active;
}



### 2️⃣ 批量查询(Batch Query)

#### 方式1:使用 `$in` 操作符(适合精确匹配)

@RestController
@RequestMapping("/api/users")
public class UserController {

@Autowired
private MongoTemplate mongoTemplate;
// 批量查询(根据ID列表)
@GetMapping("/batch")
public List<User> getUsersByIds(@RequestParam List<String> ids) {
    Query query = Query.query(
        Criteria.where("_id").in(ids) // 利用MongoDB的$in操作符
    );
    return mongoTemplate.find(query, User.class);
}

}

@RestController
@RequestMapping("/api/users")
public class UserController {

@Autowired
private MongoTemplate mongoTemplate;
// 批量查询(根据ID列表)
@GetMapping("/batch")
public List getUsersByIds(@RequestParam List ids) {
Query query = Query.query(
Criteria.where("_id").in(ids) // 利用MongoDB的$in操作符
);
return mongoTemplate.find(query, User.class);
}
}




#### 方式2:分页批量查询(避免内存溢出)
上一篇 下一篇
评论
最新回复
    暂无内容
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月
文章目录
今日天气