• MongoDB应用场景


    数据记录如下

    /* 1 */
    {
        "_id" : ObjectId("5b56dd19a171d7e9bfb03ac1"),
        "name" : "LuoTianyan",
        "BWH" : {
            "bust" : 100,
            "waist" : 100,
            "hips" : 100
        },
        "character" : [ 
            "afraid of loneliness", 
            "goodness", 
            "delicate", 
            "lovely"
        ],
        "others" : {
            "friends" : {
                "xt" : 23,
                "Tom" : 24
            },
            "location" : {
                "longitude" : 104.07,
                "latitude" : 30.67
            }
        }
    }
    
    /* 2 */
    {
        "_id" : ObjectId("5b56dd19a181d7e9bfb03ac2"),
        "name" : "SF",
        "BWH" : {
            "bust" : 100,
            "waist" : 100,
            "hips" : 100
        },
        "character" : [ 
            "lonely", 
            "easy to satisfy"
        ],
        "others" : {
            "desc" : "a dota hero"
        }
    }
    

      

    把一个对象当做一个字段存储

    如上面的表记录所示,字段"BWH","character","others"存的都是一个对象,有的还有嵌套对象。

    数组对象

    "character"是一个数组对象

    属性固定的对象

    "BWH"是固定的属性的对象

    属性不固定的对象

    “others”对象中的属性是不固定,在Java中可以用Maporg.bson.Document来进行存储

    基于位置的数据查询(空间索引)

    将MongoDB的查询条件设置为一个区域数据记录如果有表示Point的字段,可以根据Point字段查询出所有在这个区域的记录。

    Spring Data MongDB空间索引(判断一个点Point是否在一个区域Polygon内):https://www.cnblogs.com/theRhyme/p/9483076.html

    存储文件(如图片)

    GridFS能够存储文件,MongoDB的文档结构为BJSONBinary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中

    https://blog.csdn.net/javahongxi/article/details/74131117

    MongoDB作存储方便稳定易扩展,我们自己写的文件存储服务器肯定很LOW,除了含有巨量图片的大型系统,一般由公司自研图片存储外,大部分情况下,我们用mongodb足以应付。

    更高的写入负载

    https://www.cnblogs.com/imhurley/p/6060229.html

    默认情况下,MongoDB更侧重高数据写入性能,而非事务安全,MongoDB很适合业务系统中有大量“低价值”数据的场景。但是应当避免在高事务安全性的系统中使用MongoDB,除非能从架构设计上保证事务安全。

    高可用性

    MongoDB的复副集(Master-Slave)配置非常简洁方便,此外,MongoDB可以快速响应的处理单节点故障,自动、安全的完成故障转移。这些特性使得MongoDB能在一个相对不稳定(如云主机)的环境中,保持高可用性

    数据量很大或者未来会变得很大

    依赖数据库(MySQL)自身的特性,完成数据的扩展是较困难的事,在MySQL中,当一个单达表到5-10GB时会出现明显的性能降级,此时需要通过数据的水平和垂直拆分、库的拆分完成扩展,使用MySQL通常需要借助驱动层或代理层完成这类需求。

    而MongoDB内建了多种数据分片的特性,可以很好的适应大数据量的需求。

  • 相关阅读:
    项目上线之期初数据调整
    系统升级时,数据库脚本执行注意事项,血的教训
    数据精度问题的处理
    系统发布说明文档
    SQLServer中数据库文件的存放方式,文件和文件组
    数据库的持续集成和版本控制
    SQL Server 远程链接服务器详细配置【转载】
    批处理中的IF ERRORLEVEL
    asp.net用url重写URLReWriter实现任意二级域名
    关于excel导入access问题(已解决)
  • 原文地址:https://www.cnblogs.com/theRhyme/p/10318222.html
Copyright © 2020-2023  润新知