写点什么

无模式数据库 MongoDB 1.0 版发布

  • 2009-09-03
  • 本文字数:990 字

    阅读完需:约 3 分钟

Mongo 是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键 / 值存储方式。Mongo 使用 C++ 开发,提供了以下功能:

  • 面向集合的存储:适合存储对象及 JSON 形式的数据。
  • 动态查询:Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组。
  • 完整的索引支持:包括文档内嵌对象及数组。Mongo 的查询优化器会分析查询表达式,并生成一个高效的查询计划。
  • 查询监视:Mongo 包含一个监视工具用于分析数据库操作的性能。
  • 复制及自动故障转移:Mongo 数据库支持服务器之间的数据复制,支持主 - 从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
  • 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
  • 自动分片以支持云级别的伸缩性(处于早期 alpha 阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。

MongoDB 的主要目标是在键 / 值存储方式(提供了高性能和高度伸缩性)以及传统的 RDBMS 系统(丰富的功能)架起一座桥梁,集两者的优势于一身。根据官方网站的描述,Mongo 适合用于以下场景:

  • 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由 Mongo 搭建的持久化缓存层可以避免下层的数据源过载。
  • 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
  • 高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库。Mongo 的路线图中已经包含对 MapReduce 引擎的内置支持。
  • 用于对象及 JSON 数据的存储:Mongo 的 BSON 数据格式非常适合文档化格式的存储及查询。

自然,MongoDB 的使用也会有一些限制,例如它不适合:

  • 高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
  • 传统的商业智能应用:针对特定问题的 BI 数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
  • 需要 SQL 的问题

MongoDB 支持 OS X、Linux 及 Windows 等操作系统,并提供了 Python,PHP,Ruby,Java 及 C++ 语言的驱动程序,社区中也提供了对 Erlang 及.NET 等平台的驱动程序。

如果您对 MongoDB 感兴趣,可访问其官方网站了解更多信息。

2009-09-03 06:289315
用户头像

发布了 157 篇内容, 共 52.3 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

生成式AI的发展与内容质量及安全性的挑战

百度开发者中心

#人工智能 生成式AI 文心一言 千帆大模型平台

反驳来了!放弃TypeScript?说明你无知!

树上有只程序猿

typescript 代码质量 js

迎产业东风,柔性电子供应链企业的机会与挑战

华秋电子

PCB

AI和语言翻译:跨文化交流的帮手

测吧(北京)科技有限公司

测试

AI和安全性:网络安全的挑战与机会

测吧(北京)科技有限公司

测试

干货 | Elasticsearch Java 客户端演进历史和选型指南

腾讯云大数据

ES

使用Docker构建轻量级Linux容器

互联网工科生

Docker 容器

文心一言 VS 讯飞星火 VS chatgpt (93)-- 算法导论9.2 1题

福大大架构师每日一题

福大大架构师每日一题

创新力量重塑生产力

百度开发者中心

文学 #人工智能 生成式AI 文心一言

站群服务器租用:为您的多站点网络提供支持

一只扑棱蛾子

站群服务器

小度携手可口可乐,AIGC成就未来3000年时空畅想

新消费日报

处理更多数据,大幅降低成本!Milvus MMap 启示录

Zilliz

Mmap Milvus Zilliz 向量数据库 Milvus2.3

为什么选择事件驱动的微服务架构?

这我可不懂

微服务

SpringBoot拦截器和动态代理有什么区别?

王磊

Java Java面试题

达梦数据库接入案例—基于EntityFrameworkCore 6.x

为自己带盐

.net core 达梦 EFCore

机器学习——决策树模型

小魏写代码

秒合约竞猜游戏app系统开发定制源代码部署

开发微hkkf5566

云起无垠参编的《软件物料清单(SBOM)发展洞察报告》正式发布

云起无垠

Arbitrum公链系统开发丨ARB链代币质押挖矿系统开发

l8l259l3365

Pyth

在Mac上浏览Android设备文件:MacDroid pro最新中文版

胖墩儿不胖y

Mac软件 传输文件 文件传输工具

为什么越来越多的人选择PostgreSQL,放弃了MySQL

高端章鱼哥

MySQL postgresql

使用br工具备份到local的一些操作

TiDB 社区干货传送门

迁移 备份 & 恢复 6.x 实践

HarmonyOS应用开发Web组件基本属性应用和事件

HarmonyOS开发者

HarmonyOS

TiDB Serverless Branching:通过数据库分支简化应用开发流程

TiDB 社区干货传送门

RTE 领域近期词云统计发布;谷歌开始新一轮「瘦身」计划;使用ChatGPT之后智力提高 50%丨RTE开发者日报 Vol.50

声网

Axeos 跨域解决指南,让你的接口请求畅通无阻

Liam

前端 后端 前端开发 跨域 axios

文字图像转换的创新技术

百度开发者中心

#人工智能 生成式AI 千帆大模型平台

【华秋干货铺】软硬结合板的阻抗计算,你会吗?

华秋电子

PCB

揭秘 ChunJun:如何实现 e2e&session 日志隔离

袋鼠云数栈

大数据 开源

基于Web的智慧污水厂2D组态系统

2D3D前端可视化开发

组态软件 智慧水务 智慧污水处理 污水厂组态图 污水厂监控系统

创新生产力的新引擎

百度开发者中心

#人工智能 生成式AI 文心一言

无模式数据库MongoDB 1.0版发布_架构_赵劼_InfoQ精选文章