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;
    }
相關文章
相關標籤/搜索