在直接进入MongoDB 的基础知识之前,我们应该尝试了解对No-SQL 数据库本身的需求。为什么传统的关系数据库在与 MongoDB 等新竞争对手的竞争中输了。为什么它们现在如此受欢迎。为什么?
为什么是 NoSQL?
交互式应用程序在过去 15 年中发生了巨大变化,这些应用程序的数据管理需求也发生了巨大变化。通过Facebook、D&B 等第三方获取和访问数据变得越来越容易。个人用户信息、地理位置数据、社交图谱、用户生成的内容、机器日志数据和传感器生成的数据只是被捕获的不断扩大的数据阵列的几个例子。数据的使用正在迅速改变通信、购物、广告、娱乐和关系管理的性质。不快速利用它的应用程序将很快落后。
开发人员需要一个非常灵活的数据库,它可以轻松适应新的数据类型,并且不会受到来自第三方数据提供商的内容结构更改的干扰。许多新数据都是非结构化和半结构化的,因此开发人员还需要一个能够有效存储这些数据的数据库。不幸的是,关系数据库使用的严格定义的、基于模式的方法使得无法快速合并新类型的数据,并且不适合非结构化和半结构化数据。NoSQL 提供了一个数据模型,可以更好地满足这些需求。
为什么是 MongoDB?
MongoDB 是一个开源文档数据库,可跨一组用作存储节点的可配置系统提供高性能、高可用性和自动扩展。
MongoDB 因其易用性而大放异彩,无论开发人员是在跨越成百上千个节点的大型应用程序中使用它,还是在不需要扩展的单服务器应用程序中使用它。
如果您还记得在JSON 中,我们将信息存储在键值对中,如下所示:
{
name : "lorem",
address : "ipsum
}
MongoDB 将所有数据存储在文档中,文档是由字段和值对组成的 JSON 风格的数据结构。MongoDB 以 BSON 序列化格式将文档存储在磁盘上。BSON是 JSON 文档的二进制表示,但它包含的数据类型比 JSON 多。这些文件可以是上述的简单文件,也可以是如下的复杂文件:
{
id: x,
name: y,
other: z,
multipleArray: [
{lab1: "A", lab2: "B", lab3:"C"},
{lab1: "AB", lab2: "BB", lab3:"CB"},
{lab1: "AC", lab2: "BC", lab3:"CC"}
]
}
MongoDB 中大多数用户可访问的数据结构都是文档,包括:
-> 所有数据库记录。
-> 查询选择器,它定义为读取、更新和删除操作选择哪些记录。
-> 更新定义,定义更新期间要修改的字段。
-> 索引规范,定义要索引的字段。
-> MongoDB 输出的数据,用于上报和配置,如server-status 和副本集配置文档的输出。
请注意,与关系数据库相比,MongoDB也有一些限制:
a) 不支持连接
b) 不支持事务
这就是这个小小的介绍性帖子。这些是我们在开始学习 MongoDB 时将学习的数百个概念。
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/243848.html