在 Spring Data MongoDB 中,使用投影(Projection)可以实现只返回特定的字段。具体步骤如下:
- 创建一个接口,用于定义需要返回的字段。例如:
public interface UserProjection {
String getUsername();
}
- 在 Repository 接口中,使用
@Query
注解指定查询语句,并将结果映射到上面定义的 Projection 接口。例如:
@Repository
public interface UserRepository extends MongoRepository<User, String> {
@Query(value = "{}", fields = "{ 'username' : 1}")
UserProjection findTopByUsername();
}
- 调用
findTopByUsername()
方法时,只会返回UserProjection
中定义的getUsername()
字段。
UserProjection userProjection = userRepository.findTopByUsername();
String username = userProjection.getUsername();
注意:
@Query
注解中的fields
参数表示要返回的字段,必须使用 MongoDB 的查询语法。- Projection 接口中的方法名必须与字段名对应,且必须定义 getter 方法。
- 如果需要返回多个字段,可以在 Projection 接口中定义多个 getter 方法,但是
@Query
注解中也需要相应修改字段列表。