mongodb是key-value的存储方式,和redis一样,它们的value支持多种数据类型。
怎么理解MongoDB的文档存储,是指它可以直接存word文档或者是Excel、图片这些吗?不像mysql存的是它们所在的路径。
看了一下MongoDB和redis的简介,感觉MongoDB能够做的,redis也一样可以做。为什么有些场景要选MongoDB。比如:需要实时显示数据,两者都可以做到。
是我对它们理解的还不够透彻吗。
mongodb是key-value的存储方式,和redis一样,它们的value支持多种数据类型。
怎么理解MongoDB的文档存储,是指它可以直接存word文档或者是Excel、图片这些吗?不像mysql存的是它们所在的路径。
看了一下MongoDB和redis的简介,感觉MongoDB能够做的,redis也一样可以做。为什么有些场景要选MongoDB。比如:需要实时显示数据,两者都可以做到。
是我对它们理解的还不够透彻吗。
一些粗浅的理解
文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。
MongoDB 介于关系数据库和非关系数据库之间。每一条记录就是一个文档(对应关系数据库的row),一批文档组成文档组(即集合,对应table),可以对文档的某些字段建立索引。可以像关系数据库一样去支持丰富的查询语言。
Redis 非关系数据库,hash支持简单关系,key-value读取速度快,但不支持复杂关系,不支持对字段索引,不适合进行查询搜索。
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
1 回答1.9k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
别想那么复杂。以存储一篇文章为例,文章有字段:
用关系型数据存储时,你可能会建一个文章表,然后建立对应字段,存储对应数据。
而 MongoDB 就是直接把字段以及对应内容当成一个 json 存进去(下面的json)。
基于中两种方式,你会看到,如果是关系型数据库,你如果要增删一个字段,可能要考虑很多东西。但是对于 MongoDB 而言,直接在 json 里加上对应字段及内容就可以了,增删字段十分方便。