数据记录如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /* 1 */ { "_id" : ObjectId( "5b56dd19a171d7e9bfb03ac1" ), "name" : "a" , "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内建了多种数据分片的特性,可以很好的适应大数据量的需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架