关于mongodb:mongoDb入门并整合springboot

6次阅读

共计 2711 个字符,预计需要花费 7 分钟才能阅读完成。


镜像下载、域名解析、工夫同步请点击 阿里巴巴开源镜像站

MongoDb 简介

  • MongoDb 是一种非关系型数据库,是当初十分炽热的 noSQL。也被称为文档性数据库。(可寄存 json,xml 等格局)
  • mongodb 与 mysql 命令比照 传统的关系数据库个别由数据库(database)、表(table)、记录(record)三个档次概念组成,
  • MongoDB 是由数据库(database)、汇合(collection)、文档对象(document)三个档次组成。(存储 xml,json 等)
  • MongoDB 对于关系型数据库里的表,然而汇合中没有列、行和关系概念,这体现了模式自在的特点。
  • 一条 MongoDB 就是一个相似 json 数据结构。

特点:

  • 存储形式:虚拟内存 + 长久化。(数据存储在磁盘,然而充分利用了缓存,罕用的数据放于内存)
  • 不应用固定的 sql 进行操作。(有固定语法)

1.MongoDb 的长处

  • 高速。
  • 反对 json。(可寄存简单数据)
  • 可扩大分片集群。

2.MongoDb 的毛病

  • 事务关系反对单薄。
  • 稳定性有余。
  • 运维难。
  • 不反对对表关联查问。
  • 在指定 id 之后插入会比较慢。

3. 应用场景

  • 对大量无固定格局的数据存储,如日志等。(充沛的应用了内存)
  • 须要高性能。
  • 扩大集群。

MongoDb 的 curd 语法

装置

首先须要装置,能够依照这位老哥的来装置

操作命令

进入 C:\Program Files\MongoDB\Server\3.4\bin,双击 mongo.exe。

show dbs  -- 查看数据库,假如咱们有一个叫 test 的数据库
use test 应用 test 数据库 

1. 插入语法

db.message.save({'name':'xiaobao','age':27,'class':'1-1'})  -- 插入 message 的信息。外面为 json。db.message.save({'name':'xiaobao2','age':28,'class':'2-1'})
db.message.save({'name':'xiaobao3','age':29,'class':'3-1'})

2. 查问语法

db.message.find()    -- 查问 message
db.message.find().pretty()  -- 格式化在查问
db.message.find()  .limit(1)  -- 查问一条
db.message.find({"age":{"$gte":10}}) -- 查问 age 大于 10 的数据
db.message.find({"age":{"$lte":10}}) -- 查问 age 小于 10 的数据
db.message.find().sort({"age":1})  -- 正排序
db.message.find().sort({"age":1})  -- 负排序
db.message.count() -- 查问条数 

3. 批改语法

db.message.update({"name":"xiaobao"},{$set:{"name":"xiaowang"}}) 
db.message.update({"name":"xiaowang"},{"name":"laoli"})  -- 批改 name 为 laoli 其余值删除
db.message.update({"name":"xiaobao2"},{$set:{"name":"xiaowang"}},{upsert:true})   -- 如果没有 减少一条
db.message.update({"name":"xiaowang"},{$set:{"name":"xiaowang"}},{multi:true})    -- 批改所有数据 

4. 删除语法

db.message.remove()  -- 删除所有
db.message.remove({'class':'1-1'}) -- 删除 class = 1- 1 的那条 

整合 spring boot

在 application.properties 退出 mongoDb 链接。

spring.data.mongodb.uri=mongodb://192.168.2.81:27017/test 

而后应用 MongoTemplate 来操作数据库,MongoTemplate 和罕用的 RedisTemplate 差不多,都是封装了 mongoDb 办法的客户端。

    @Autowired
   private MongoTemplate mongotemplate;
   // 减少
    @RequestMapping(path = "/savemongo", method = RequestMethod.POST)
   @ResponseBody
   public void savecCity(@RequestBody City city) {mongotemplate.save(city);// 通过一个类类型向数据库中插入 json
   }

    // 查问
   @RequestMapping("/selmongo")
   @ResponseBody
   public City select(@RequestParam int id) {Query query = new Query(Criteria.where("id").is(id));  // 查问 id 为传入参数
      City user = mongotemplate.findOne(query, City.class);
      return user;
   }

    // 删除
   @RequestMapping("/delmogo")
   @ResponseBody
   public void del(@RequestParam int id) {Query query = new Query(Criteria.where("id").is(id));  // 集体了解此行为查问条件,而后在上面查找出在删除。mongotemplate.remove(query, City.class);
   }

     // 批改
   @RequestMapping(path = "/updamogo", method = RequestMethod.POST)
   @ResponseBody
   public void updateMongo(@RequestBody City city) {Query query = new Query(Criteria.where("id").is(city.getId()));
      Update update = new Update().set("provinceId", city.getProvinceId()).set("cityName", city.getCityName());
      mongotemplate.updateFirst(query, update, City.class);
   }

本文转自:
https://blog.51cto.com/u_1540…

正文完
 0