mongodb学习一(使用mongoResposity)
最近公司做一个项目用到了mongodb,下面来介绍一下MongoRepository接口。
大家可以类比Hibernate的jpa,MongoRepository是一个springdata提供的一个有增删改查以及分页等操作的基本接口。
我们在使用接口时,只需要定义一个dao层的接口,例如:
interface UserResposity extends MongoRepository<User, String>{}, User是一个entity实体类。
下面贴上User实体类
1 @Data 2 @Document(collection = "User") 3 public class User implements Serializable { 4 5 @Id 6 private String id; 7 8 /** 9 * 电话 10 */ 11 @Indexed(unique = true) 12 private String telephone; 13 14 15 /** 16 * 昵称 17 */ 18 @Indexed 19 private String nickname; 20 21 /** 22 * 头像地址 23 */ 24 private String avatar; 25 26 27 /** 28 * 出生日期 29 */ 30 private Long birthday; 31 32 /** 33 * 性别 34 * 35 */ 36 private Integer sex; 37 38 39 /** 40 * 关注用户的集合 41 */ 42 private List<String> followingList; 43 44 45 46 }
UserResposity接口代码如下:
1 @Repository 2 public interface UserRepository extends MongoRepository<User, String> { 3 4 User findByTelephone(String telephone); 5 }
我们只需要书写接口,不用自己去写接口的实现。例如findByTelephone方法,telephone是User类的一个属性
接口方法的基本命名方式为 find + By + 实体类属性名(首字母大写)+查询条件(首字母大写)
查询条件就是Like,用过SQL的大家都知道,就是模糊查询的意思。
还有GreaterThan(大于) ,LessThan(小于) ,Between(在…之间), IsNotNull, NotNull(是否非空),Near(查询地理位置相近的)等。具体查看官网文档 https://docs.spring.io/spring-data/mongodb/docs/1.10.13.RELEASE/reference/html/#repositories.definition
如果需要查询的方法有多个字段可以用And来连接即可。
如果要使用这个接口,需要把接口注入。代码如下:
1 @Autowired 2 private UserRepository userRepository;