为什么MongoDB敢说“做以前你从未能做的事”

简介:

小编注:在MongoDB的网站上,它这样自我介绍:做以前你从未能做的事(Do What You Could Never Do Before)。为什么MongoDB敢这样说?它有什么长处与不足?今天我们给大家抛砖引玉。



一、 MongoDB是什么?


“需求是创新之母。” 虽然这是句老话,但现在依然很受用!


过去的十年,我们将数据生成、存储和分析的临界点推上一个全新的高度。这个大跃进是我们向数字化的数据驱动的经济又近了一步;这个大跃进也创造了它自身的需要。而这些问题及其解决方法通常都在大数据的保护伞之下。


想象一下:如今,脸书和谷歌产生了更多的数据,它们加在一起超过了前几年的全球数据总量。伴随数据生成的高速增长,随之而来是存储和规模的问题。看,所有人都希望脸书上的订阅能够被瞬间加载——我们憎恨端着手机和电脑在那儿傻傻等着它加载。可回头想想,什么架构才能使我们有这样快速体验?数百万的用户同时向数据库请求实时信息。再加上非结构化数据和系统需求(让您可以快速添加新功能),这看上去更像是一个不可能完成的任务。

传统的数据库很难应付这种需求,且提升规模所需的成本令人望而却步。本文给大家介绍一个新型的数据存储系统,大家管它叫做MongoDB。它提供了无架构设计、高性能、高可用性和自动规模伸缩,这是当前所需要但传统RDBMS系统无法满足的性质。



维基上这么描述MongoDB

MongoDB(源自huMONGOus一词,意为“堆积如山的”)是一个跨平台的面向文档的NoSQL数据库。MongoDB避开了传统的基于表格的关系型数据库结构,代之以具有动态结构的类JSON文档格式(MongoDB称之为BSON),从而使一些特定类型应用的数据整合更容易、更快。在GNU Affero和Apach许可下发布的MongoDB是一个免费的开源软件。


二、有谁在用MongoDB?


下面只列举其中一部分。实际上,MongoDB在全球已有一千万次以上的下载量,目前有三十万人正在学习MongoDB。



三、对比传统关系型数据库


将关系型数据库和MongoDB进行比较,就好似在比较一只狮子和一只老虎一般。虽然都是食肉动物,但是一个是独自狩猎,另一个则是群体出动。SQL(老虎)有着一个固定的数据模型,其中的数据需要遵循架构的设计,这有助于组织分析例如销售统计类的结构化数据。而另一方,MongoDB(狮子)是一个基于文档的数据库,它以文档的形式存储数据。虽然他们的方法不同,但依据组织化的需求,这两者都需要数据存储并选择数据库类型。



四、使用MongoDB有什么优点?




从上面的附图你可以发现,当服务器上的查询数量增加时,MongoDB就明显是一个胜利者。MongoDB 非常适用于实时分析,它有着低延迟以及针对需求的高可用性。


MongoDB已经进入了前沿领域,因为各类组织需要分析半结构化、非结构化以及地理或空间数据,更因为现今世界原先的结构化数据正在被快速的改变。


传统的关系型数据库系统不能完全应付得了这些需求,因为它们固有的结构不允许它们处理这样的需求。虽然关系型数据库系统也在改变,来迎合数据的大爆发,但最适合处理当今数据的数据库仍是像MongoDB这类文档数据库。


五、MongoDB的局限性是什么?


以下列举了一些MongoDB的限制。

1.最大的文件不能超过16MB

2.最大文件嵌套层级为100(指文件嵌套文件再嵌套文件)

3.索引区不能超过1024字节。

4.每个集合最多为64个索引。

5.创建一个复合索引最多使用31个字段。

6.全文本搜索和地理位置索引是互斥的。

7.在32位机器上,一个固定集合(capped collection)中的文件数量大小是有限制的。但64位机器上则对文件数量大小没有限制。

8.在Windows系统上,MongoDB不能存储超过4TB的数据(去除日志后为8TB)

9.在单个复制集中最多可有12个节点。

10.在单个复制集中最多可有7个投票节点。

11.如要回滚超过300MB的数据,需要进行人工干预。

12.在分片集群(sharded cluster)中无法使用组命令。

13.在分片集群中无法使用 $isolated, $snapshot, geoSearch。

14.你无法在 $where中涉及到数据库对象。

15.为了分片一个集合,它必须小于256GB。

16.在分片集群中对单条记录(非多条)的更新/移出必须包含分片密钥。同样命令针对多条记录执行时则可以不包含分片密钥。

17.分片密钥最大值为512字节。

18.一旦分片完成,一个集合的分片密钥值将无法改变。


除了这些限制以外,在关系型数据库系统中用约束来防止数据被意外删除的功能在MongoDB或其他NoSQL数据库系统中无法实现。 也可能有其它问题,例如像下面列示的这个,为了存储多层数据而违反了标准范式。



一个用户有许多朋友,并可能其中之一就是他自己。人们可能反复对自身进行点赞、评论或两者皆有的行为动作。这种类型的反复模式使得它更难将一个活动流反规范化(de-normalize)为一份独立的文档


MongoDB也像其它科技一般,非常公平的共享了它的局限性和缺陷,并且随着版本更新,它们将很有希望被解决。


原文发布时间为:2015-06-23

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
19天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
32127 117
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
9天前
|
应用服务中间件 API 网络安全
3分钟汉化OpenClaw,使用Docker快速部署启动OpenClaw(Clawdbot)教程
2026年全新推出的OpenClaw汉化版,是基于Claude API开发的智能对话系统本土化优化版本,解决了原版英文界面的使用壁垒,实现了界面、文档、指令的全中文适配。该版本采用Docker容器化部署方案,开箱即用,支持Linux、macOS、Windows全平台运行,适配个人、企业、生产等多种使用场景,同时具备灵活的配置选项和强大的扩展能力。本文将从项目简介、部署前准备、快速部署、详细配置、问题排查、监控维护等方面,提供完整的部署与使用指南,文中包含实操代码命令,确保不同技术水平的用户都能快速落地使用。
4706 4
|
15天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
6789 18
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
13天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
4762 11
|
16天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
5661 21
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
12天前
|
人工智能 JavaScript 安全
Claude Code 安装指南
Claude Code 是 Anthropic 推出的本地 AI 编程助手,支持 Mac/Linux/WSL/Windows 多平台一键安装(Shell/PowerShell/Homebrew/NPM),提供 CLI 交互、代码生成、审查、Git 提交等能力,并内置丰富斜杠命令与自动更新机制。
4213 0
|
16天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
6221 6
|
18天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
7758 17