最近公司做一个项目用到了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; 

 

版权声明:本文为reject-ant原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/reject-ant/p/9318816.html