mongodb是key-value的存储方式,和redis一样,它们的value支持多种数据类型。怎么理解MongoDB的文档存储,是指它可以直接存word文档或者是Excel、图片这些吗?不像mysql存的是它们所在的路径。看了一下MongoDB和redis的简介,感觉MongoDB能够做的,redis也一样可以做。为什么有些场景要选MongoDB。比如:需要实时显示数据,两者都可以做到。
是我对它们理解的还不够透彻吗。
2 回答
![?](http://img1.sycdn.imooc.com/545862770001a22702200220-100-100.jpg)
叮当猫咪
TA贡献1776条经验 获得超12个赞
别想那么复杂。以存储一篇文章为例,文章有字段:
- 标题
- 内容
- 图片
- 时间
用关系型数据存储时,你可能会建一个文章表,然后建立对应字段,存储对应数据。
而 MongoDB 就是直接把字段以及对应内容当成一个 json 存进去(下面的json)。
{
"title":"文章标题",
"content":"文章内容",
"img":"文章图片",
"createTime":"创建时间"
}
基于中两种方式,你会看到,如果是关系型数据库,你如果要增删一个字段,可能要考虑很多东西。但是对于 MongoDB 而言,直接在 json 里加上对应字段及内容就可以了,增删字段十分方便。
![?](http://img1.sycdn.imooc.com/54584f8f00019fc002200220-100-100.jpg)
胡子哥哥
TA贡献1825条经验 获得超6个赞
一些粗浅的理解
文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。
MongoDB 介于关系数据库和非关系数据库之间。每一条记录就是一个文档(对应关系数据库的row),一批文档组成文档组(即集合,对应table),可以对文档的某些字段建立索引。可以像关系数据库一样去支持丰富的查询语言。
Redis 非关系数据库,hash支持简单关系,key-value读取速度快,但不支持复杂关系,不支持对字段索引,不适合进行查询搜索。
- 2 回答
- 0 关注
- 383 浏览
添加回答
举报
0/150
提交
取消