• MongoDB是一个开源、高性能、无模式的文档型数据库。NoSQL数据库产品中的一种,最像关系型数据库的非关系数据库
  • 场景数据分析
    • 淘宝用户数据
      • 存储位置:数据库
      • 特性:永久性存储,修改频率低
    • 游戏装备数据、游戏道具数据
      • 存储位置:数据库、MongoDB
      • 特性:永久性存储与临时存储相结合,修改频率比较高
    • 直播数据、打赏数据、粉丝数据
      • 存储位置:数据库、MongoDB
      • 特性:永久性存储与临时存储相结合,修改频率极高
    • 物联网数据
      • 存储位置:MongoDB
      • 特性:临时存储,修改频率很低
  • Springboot整合MongoDB
    • 引入pom依赖
	<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>	
-  配置application 配置文件
spring:
  data:
    mongodb:
      uri: mongodb://x.x.x.x/数据库名称
-  测试增删改查
@SpringBootTest
class SpringbootMongodbApplicationTests {
    @Autowired
    private MongoTemplate mongoTemplate;

    //增加
    @Test
    void save() {
        Book book = new Book();

        book.setId(3);
        book.setName("springboot4");
        book.setType("springboot4");
        book.setDescription("springboot4");
        mongoTemplate.save(book);
    }
    //查询全部
    @Test
    void find(){
        List<Book> all = mongoTemplate.findAll(Book.class);
        System.out.println(all);
    }
    //根据条件查询
    @Test
    void findOne(){
        Query query = new Query(Criteria.where("name").is("springboot1"));
        Book one = mongoTemplate.findOne(query, Book.class);
        System.out.println(one);

    }
    //根据条件改
    @Test
    void update(Book book){
        book.setId(2);
        book.setName("springboot3");
        book.setType("springboot3");
        book.setDescription("springboot3");
        Update update = new Update();
        Query query = new Query(Criteria.where("id").is(book.getId()));
        update.set("name",book.getName());
        update.set("type",book.getType());
        update.set("description",book.getDescription());
        mongoTemplate.updateFirst(query,update,Book.class);
    }
    //根据id删除
    @Test
    void removeById(){
        Query query = new Query(Criteria.where("id").is(3));
        mongoTemplate.remove(query,Book.class);
    }
}
-