mongodb基础安装使用(springboot集成)

一、安装

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.10.tgz

 

tar zxvf mongodb-linux-x86_64-3.2.10.tgz #解压

 

mv mongodb-linux-x86_64-3.2.10 mongodb  #重命名文件夹

 

mkdir -p /data /mongodb/data/ #创建MongoDB数据库存放路径

 

mkdir -p /data /mongodb/log/ #创建MongoDB数据库日志存放路径

 

运行:进入mongodb目录下

./bin/mongod --port 27017 --fork --dbpath=/data/mongodb/data/ --logpath=/data /mongodb/log/mongodb.log --logappend

可以将上面命令写到start.sh

 

以上参考:https://www.osheep.cn/4793.html

 

win客户端下载:https://www.mongodbmanager.com/download-mongodb-manager-free

 

二、使用

 

1、引入依赖

<dependency>

    <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-data-mongodb</artifactId>

</dependency>

 

2、配置(不需要认证的注释掉,传空会报错)

spring.data.mongodb.host=192.168.20.224

spring.data.mongodb.port=27017

#spring.data.mongodb.username=

#spring.data.mongodb.password=

spring.data.mongodb.database=pdev

 

3、创建实体类

 

@Document(collection = "posInfo")   //集合=表名称

public class PosInfo  {

         @Id

         private Long id;  //主键id

         private String type;

         @Indexed(unique = true) //索引的创建

         private String imei;

   //其他代码省略

}

4、创建service

@Service

public class PosInfoService {

 

         @Autowired

    private MongoTemplate mongoTemplate;

        

         /**

*单条插入,

*/

         public void add(xxxx) {

                   xxxxxx

                   mongoTemplate.insert(info);

         }

        

         public PositionDevInfo findByImei(String imei) {

         //查找

                   return mongoTemplate.findOne(new Query(Criteria.where("imei").is(imei)), PosInfo.class);

         }

        

         public void save(xxx){

                   xxxxx

             //会根据主键id决定添加还是更新

                   mongoTemplate.save(info);

         }       

}

 

多条件查询分页:

      ArrayList<Criteria> crilist=new ArrayList<Criteria>();

              if (area.length() > 0) {

                       crilist.add(Criteria.where("areaProjectCode").is(area));

                   }

                   if (keyword.length() > 0) {

                            Criteria crit = new Criteria();

                            crit.orOperator(Criteria.where("name").regex(".*?" + keyword + ".*?"),

                                               Criteria.where("imei").regex(".*?" + keyword + ".*?"),

                                               Criteria.where("phone").regex(".*?" + keyword + ".*?"),

                                               Criteria.where("phone1").regex(".*?" + keyword + ".*?"),

                                               Criteria.where("phone2").regex(".*?" + keyword + ".*?"));

                            crilist.add(crit);

                   }

                           

                            if (company.length() > 0) {

                                     Criteria crit = new Criteria();

                                     crit.andOperator(Criteria.where("company").regex(company + ".*?"));

                                     crilist.add(crit);

                                    

                            }

                            if (usable) {

                                     crilist.add(Criteria.where("usable").is(usable));

                            }

                           

                            if (lastTime != null) {

                                     Criteria crit = new Criteria();

                                     crit.andOperator(Criteria.where("lastTime").gte(lastTime));

                                     crilist.add(crit);

                            }

                             Criteria[] arr=new Criteria[crilist.size()];

                             crilist.toArray(arr);

                        Criteria criteria1=new Criteria().andOperator(arr);

                        Query query=new Query(criteria1);

         long count = mongoTemplate.count(query, PositionDevInfo.class); //计算总数,用于算法分页数

               int pageTotal=(int) (count%pageSize==0?count/pageSize:count/pageSize+1); //总页数

                    int offset=(page-1)*pageSize;

                 Sort sort = new Sort(Sort.Direction.DESC, "lastTime");

                 query.with(sort); //排序逻辑

                 query.skip(offset).limit(pageSize); // 分页逻辑

                 List<PosInfo> posInfos = mongoTemplate.find(query, PosInfo.class);

 

 

更多mongoTemplate操作参考

 

https://www.cnblogs.com/yangxiaohui227/p/11353803.html

https://blog.csdn.net/jiangshuanshuan/article/details/93175801  (更新操作)

https://www.cnblogs.com/ityouknow/p/6828919.html  多数据源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值