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

      




  • 相关阅读:
    清理git提交记录并不能达到真正硬盘“瘦身”
    virtualbox虚拟机异常暂停
    百兆带宽升千兆-番外篇
    流水文之百兆带宽升千兆
    OSS设置静态网站托管+CDN加速OSS域名
    每日一坑-exsi中win虚拟机调分辨率
    nginx筛选字段+excel统计
    树莓派使用Samba共享文件
    chrome无法使用独显解决
    解决jdk16安装后无jre目录的问题
  • 原文地址:https://www.cnblogs.com/joelan0927/p/11027864.html
Copyright © 2020-2023  润新知