最近公司做一个项目用到了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  @Indexed19  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 @Repository2 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(查询地理位置相近的)等。具体查看官网文档

如果需要查询的方法有多个字段可以用And来连接即可。

如果要使用这个接口,需要把接口注入。代码如下:

 1 @Autowired 2 private UserRepository userRepository; 

 

相关文章