MongDB

作者: 建国同学 | 来源:发表于2020-06-08 20:03 被阅读0次

    一、简介

    • 非关系型数据库(nosql数据库)中的文档型关系数据库
      以bson(升级版json格式)结构存储数据

    • 非关系型数据库特点
      1.数据模型比较简单.(主要)
      2.需要灵活性更强的应用系统
      3.对数据库性能要求较高(主要)
      4.不需要高度的数据一致性(主要)
      5.对于给定key,比较容易映射复杂值的环境.

    • mongodb特点
      1:JSON结构和对象模型接近,开发代码量少
      2:JSON动态模型意味着更容易响应新的业务需求
      3:复制集提供了 99.999%高可用
      4:分片架构支持海量数据无缝扩容

    • 每个文档大小不能超过16MB

    二、 MongoDB范式化与反范式化

    • 范式化:将数据分散到多个不同的集合,不同集合之间可以相互引用数据。如果要修改数据,只需修改保存这块数据的文档就行。但是MongoDB没有连接(join)工具,所以在不同集合之间执行连接查询需要进行多次查询。

    • 反范式化:将每个文档所需的数据都嵌入在文档内部。每个文档都有自己的数据副本,而不是所有文档共同引用一个数据副本。但是如果数据发生变化,那么所有相关文档都需要进行更新。

    • 范式化能够提高数据写入速度,反范式化能够提高数据读取速度。

    三、Spring Data

    Spring Data方法命名规范

    关键字 例子 JPQL
    And findByNameAndAge(String name, Integer age) where name = ? and age = ?
    Or findByNameOrAge(String name, Integer age) where name = ? or age = ?
    Is findByName(String name) where name = ?
    Between findByAgeBetween(Integer min, Integer max) where age between ? and ?
    LessThan findByAgeLessThan(Integer age) where age < ?
    LessThanEqual findByAgeLessThanEqual(Integer age) where age <= ?
    GreaterThan findByAgeGreaterThan(Integer age) where age > ?
    GreaterThanEqual findByAgeGreaterThanEqual(Integer age) where age >= ?
    After 等同于GreaterThan
    Before 等同于LessThan
    IsNull findByNameIsNull() where name is null
    IsNotNull findByNameIsNotNull() where name is not null
    Like findByNameLike(String name) where name like ?
    NotLike findByNameNotLike(String name) where name not like ?
    StartingWith findByNameStartingWith(String name) where name like '?%'
    EndingWith findByNameEndingWith(String name) where name like '%?'
    Containing findByNameContaining(String name) where name like '%?%'
    OrderByXx[desc] findByIdOrderByXx[Desc] (Long id) where id = ? order by Xx [desc]
    Not findByNameNot(String name) where name != ?
    In findByIdIn(List<Long> ids) where id in ( ... )
    NotIn findByIdNotIn(List<Long> ids) where id not in ( ... )
    True findByXxTrue() where Xx = true
    False findByXxFalse() where Xx = false
    IgnoreCase findByNameIgnoreCase(String name) where name = ? (忽略大小写)

    四、spring data jpa

    https://www.cnblogs.com/chenglc/p/11226693.html

    相关文章

      网友评论

          本文标题:MongDB

          本文链接:https://www.haomeiwen.com/subject/dlnozhtx.html