MogoDb的使用及配置

1.导入相应的依赖

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

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

#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信息

/**
* 此处是获取配置文件中配置的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.使用MongoTemplate

@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; }

  

 




posted on 2019-06-15 15:57  NcQiao  阅读(384)  评论(0编辑  收藏  举报

导航