数据记录如下

/* 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中可以用Map或org.bson.Document来进行存储

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

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

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

存储文件(如图片)

GridFS能够存储文件,MongoDB的文档结构为BJSON(Binary 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内建了多种数据分片的特性,可以很好的适应大数据量的需求。

MongoDB应用场景的更多相关文章

  1. mongodb 使用场景和不使用场景

    1.mongodb介绍 MongoDB (名称来自"humongous") 是一个可扩展的高性能,开源,模式自由,面向文档的数据库.它使用C++编写.MongoDB特点: a.面向 ...

  2. MongoDB使用场景和局限 (转)

    MongoDB的使用场景: 1.Web应用程序.文档能表示丰富的数据结构,建模相同数据库所需的集合数量通常会比使用完全正规化关系型数据库的数据表数量要少.动态查询和二级索引能让你轻松的实现SQL开发者 ...

  3. mongodb使用场景及与mysql区别

    MySQL是关系型数据库. 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺 ...

  4. MongoDB应用场景及选型

    1. MongoDB数据库定位 * OLTP数据库 * 原则上Oracle和MySQL能做得事情,MongoDB都能做(包括ACID事务) * 优点:横向扩展能力,数据量或并发量增加时候可以自动扩展 ...

  5. MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

    NoSQL的四大种类 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻.在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数 ...

  6. MongoDB 比较适用哪些业务场景?

      在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB ...

  7. 谈谈mongodb,mysql的区别和具体应用场景

    最近对数据库比较感兴趣,于是就去研究了下部分相关热门的数据库. MySQL 关系型数据库. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数 ...

  8. MongoDB安装、CURD操作、使用场景分析总结(1)

    NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...

  9. 什么场景应该用 MongoDB(转)

    很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如: 案例1 用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便.也是给应用练手,从外围系统开始使用Mong ...

随机推荐

  1. HTML5和CSS3的一些学习记录

    1.引述块级文本的标签(blockquote): <blockquote cite="http://www.marktwainbooks.edu/"> <p> ...

  2. 【Selenium-WebDriver自学】Log4J的设置(十五)

    ==================================================================================================== ...

  3. git回滚到某个版本操作

    git回滚到某个版本操作: 1.git log //查看指过去的版本 2.     git reset --hard 复制上面commit后的字符串到此处 如果只想 回滚单机的,那么到上面就结束,如果 ...

  4. linux常用命令总结-updating

    Linux 命令总结 启动终端: ctr+alt+t终端字体放大: ctr+shift+'+',终端字体缩小: ctr+'-'ls: 查看当前目录下的文件信息pwd: 查看目录所在的路径touch: ...

  5. 如何将相册中的动态GIF图转化成NSData类型

    http://www.cocoachina.com/bbs/read.php?tid=151776

  6. 1. apache如何启动

    进入apache安装目录/bin/底下,用命令:./apachectl start 启动

  7. php图片上传base64数据编码。

    /** * base64图片上传 */ function IdImg($base64_img = ''){ $up_dir = 'upload/';//存放在当前目录的upload文件夹下 if(!f ...

  8. twisted如何生成deferred的

    @implementer(interfaces.IStreamClientEndpoint)class TCP4ClientEndpoint(object):    """ ...

  9. Spring.net介绍及MVC中应用

    Spring.net两大核心内容: IOC(控制反转) 传统的面相对象思维模式是对象A依赖对象B,对象B的实例化和调用都在对象A中发生,一旦对象B中发生变化,对象A也要随之变化,这样使得程序间行程了紧 ...

  10. Lua脚本语法说明(转)

    Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了.估计看完了,就懂得 ...