MogoDb的使用及配置

1.导入相应的依赖java

<!--mongodb-->
<dependency>
      <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

2.再配置文件中配置Mogo的信息spring

#xxx表示你自定义的名字
spring.data.mongodb.xxx.database=      #Mongo指定使用的库名 spring.data.mongodb.xxx.host=192.168.x.x #Mongo所在的IP spring.data.mongodb.xxx.port=3633      #Mongo所在的Port spring.data.mongodb.xxx.password=      #Mongo如有帐号密码则须要配置 spring.data.mongodb.xxx.username=      #Mongo如有帐号密码则须要配置

3.获取Mongo的properties信息
mongodb

/**
* 此处是获取配置文件中配置的Mongo信息
* 将配置信息封装至MongoProperties中
*/
@Configuration public class MultipleMongoProperties {
   //perfix表示配置文件中配置的名字,到xxx为止
   //此处为此Mongo命名为xxxMongoTemplate @Primary @Bean(name="xxxMongoTemplate") @ConfigurationProperties(prefix="spring.data.mongodb.xxx") public MongoProperties statisMongoProperties() { return new MongoProperties(); } }

4.配置MongoTemplate数据库

//basePackages:指定上面配置MongoProperties的包位置
@Configuration @EnableMongoRepositories(basePackages = "com.xxx.config.mongoConfig", mongoTemplateRef = "zzz") public class RentFollowMongo { //将上面封装到MongoProperties信息注入容器 @Autowired @Qualifier("xxxMongoTemplate") private MongoProperties mongoProperties;
//为MongoTemplate命名:可自定义,将MongoTemplate放入容器供使用 @Bean(name = "zzz") public MongoTemplate zzzTemplate() throws Exception { return new MongoTemplate(rentfollowFactory(this.mongoProperties)); }
//此处获取到Mongo工厂 @Bean public MongoDbFactory mongoFactory(MongoProperties mongoProperties){
     //注册地址 ServerAddress serverAdress = new ServerAddress(mongoProperties.getHost(),mongoProperties.getPort());
     //获取到MongoFactory return new SimpleMongoDbFactory(new MongoClient(serverAdress), mongoProperties.getDatabase()); } }

5.使用MongoTemplatespring-boot

@Component
public class MongoTest {

    @Autowired
    @Qualifier(value = "zzz")
    private MongoTemplate mongoTemplate;  public List<Xxx> findFromMongo(){
        /*
        * 查询条件
        */
        Query query = new Query();
        /*
        * 数据库名称:在Mongo中的数据库名
        */
        String mongoDbName= "Test_Mongo";
     //查询此数据库中全部数据,Xxx为封装了Mongo数据库字段的实体     List<Xxx> xxxList = mongoTemplate.fin(query,Xxx.class,mongoDbName);       //过滤查询条件:regex里面使用正则去过滤,此处表示不包含以xxxx开头的数据        query.addCriteria(Criteria.where("e").regex(Pattern.compile("^((?!xxxx).)*$",Pattern.CASE_INSENSITIVE)
        //添加查询条件进行查询:where为Mongo中的字段信息,in表示范围,相似Sql:select * from table where a in(a,b,c)     query.addCriteria(Criteria.where("a").in(a,b,c);           //分页
        //query.skip((pageNo-1)*pageSize);     //query.limit(pageSize);

        //排序(升序)  如有置顶字段能够先排置顶
        //query.with(new Sort(Sort.Direction.ASC,"sort"));
        //排序(降序)
        //query.with(new Sort(Sort.Direction.DESC,"sort"));

        //查询此数据库总条数     long count = mongoTemplate.count(query,mongoDbName);     //此处只返回集合,信息可根据自身须要进行封装并返回
        return xxxList;
    }
相关文章
相关标签/搜索