Intro
μλ νμΈμ. μ΄λ² μκ°μλ Springboot μ€νλ§λΆνΈ JPAμμ νλ‘μ μ νλ λ°©λ²μ λν΄ μμλ³΄κ² μ΅λλ€.
Projection?
λ¨Όμ λ€μ΄κ°κΈ°μ μμ κ°λ¨νκ² νλ‘μ μ μ λν μλ―Έλ₯Ό μ΄ν΄λ³Όκ²μ. νλ‘μ μ μ μν°ν°μ μμ±μ΄ λ§μ λ μΌλΆ λ°μ΄ν°λ§ κ°μ Έμ€λ λ°©λ²μ μλ―Έν©λλ€. λ μμΈν λ΄μ©μ΄ κΆκΈνμλ©΄ μΌμ μ μ κ° μ 리ν΄λμ ν¬μ€ν μ°Έκ³ λ°λλλ€ :)
[MongoDB] νλ‘μ μ (Projection) μ΄λ? projection query μ¬μ©λ²
How to do
μλμ User domain κ°μ²΄λ₯Ό μ°Έκ³ νμ¬ μ€λͺ ν΄λ³΄κ² μ΅λλ€.
@Document(collection = "user")
class User(
val userId: String?,
val userName: String?,
val userPassWord: String?,
val email: String?,
)
μνλ λ°μ΄ν° μμ±μ μλμ κ°μ΄ Query μ΄λ Έν μ΄μ μ ν΅ν΄ repositoryμμ μ‘°νν΄μ€λ©΄ λ©λλ€.
@Query(fields = "{'userId': 1, 'userPass': 1, 'userName': 1}")
User κ°μ²΄μμ userIdμ userNameμ κ°μ Έμ€κΈ° μν΄ UserRepositoryμμ @Query μ΄λ Έν μ΄μ μ μ¬μ©νμ¬ μμ±ν΄λ³Έ μμ λλ€.
interface UserRepository : BaseReactiveRepository<User, ObjectId> {
@Query(fields = "{'userId': 1, 'userName': 1}")
fun findByUserIdAndUserName(userId: String, userName: String): Mono<Read?>
}