MongoDB的文档存储是指什么?

cpms开源
  • 938

mongodb是key-value的存储方式,和redis一样,它们的value支持多种数据类型。
怎么理解MongoDB的文档存储,是指它可以直接存word文档或者是Excel、图片这些吗?不像mysql存的是它们所在的路径。
看了一下MongoDB和redis的简介,感觉MongoDB能够做的,redis也一样可以做。为什么有些场景要选MongoDB。比如:需要实时显示数据,两者都可以做到。

是我对它们理解的还不够透彻吗。

回复
阅读 2.8k
2 个回答

别想那么复杂。以存储一篇文章为例,文章有字段:

  1. 标题
  2. 内容
  3. 图片
  4. 时间

用关系型数据存储时,你可能会建一个文章表,然后建立对应字段,存储对应数据。
而 MongoDB 就是直接把字段以及对应内容当成一个 json 存进去(下面的json)。

{
    "title":"文章标题",
    "content":"文章内容",
    "img":"文章图片",
    "createTime":"创建时间"
}

基于中两种方式,你会看到,如果是关系型数据库,你如果要增删一个字段,可能要考虑很多东西。但是对于 MongoDB 而言,直接在 json 里加上对应字段及内容就可以了,增删字段十分方便。

一些粗浅的理解

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。

MongoDB 介于关系数据库和非关系数据库之间。每一条记录就是一个文档(对应关系数据库的row),一批文档组成文档组(即集合,对应table),可以对文档的某些字段建立索引。可以像关系数据库一样去支持丰富的查询语言。

Redis 非关系数据库,hash支持简单关系,key-value读取速度快,但不支持复杂关系,不支持对字段索引,不适合进行查询搜索。

宣传栏