SpringBoot with MongodbRepository
Contents
Spring with MongodbRepository 简单使用
这篇笔记参考自 这篇文章
定义数据类型
class Product(
val id: String,
val name: String,
val price: Int
)
我们可以
- 手动定义对象存储的集合位置
@Document(collection = "products") class Product( )
- 手动定义对象的主键
class Product( @MongoId val id: String )
定义 Repository
@Repository
interface ProductRepository: MongoRepository<Product, String> {
fun findAllByNameLike(name: String): List<Product>
fun findById(id: String): Product?
fun existsByName(name: String): Bool
}
继承自 MongoRepository
的接口类与 JPA
相似,定义好方法即可, CRUD 方法也与之类似
排序
@Repository
interface ProductRepository: MongoRepository<Product, String> {
fun findAllByNameLike(name: String, sort: Sort): List<Product>
}
val sort = Sort.by(Sort.Direction.ASC, "price")
val sort = Sort.by(
Sort.Order.asc("price"),
Sort.Order.desc("name")
)
原生查询语法
@Query("{'name': {'$eq': '?0'}}")
fun f1(name: String): Product?
@Query("{'name': {\$regex: '?0'}}")
fun f2(name: String): Product?