欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mongodb学习一(使用mongoResposity)

程序员文章站 2022-05-14 08:30:44
最近公司做一个项目用到了mongodb,下面来介绍一下MongoRepository接口。 大家可以类比Hibernate的jpa,MongoRepository是一个springdata提供的一个有增删改查以及分页等操作的基本接口。 我们在使用接口时,只需要定义一个dao层的接口,例如: inte ......

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