MongoDB数据模型

MongoDB中的数据有一个灵活的模式。不像SQL数据库,你必须确定在插入数据之前和声明一个表的模式,

MongoDB的集合不执行文档结构。他灵活便利的映射文件一个实体或对象。每个文档可以匹配的数据字段代表的实体,

即使数据有实质性的变化。然而在实践中,集合中的文件共享一个相似的结构。数据建模的关键挑战是平衡应用程序

的需要,数据库引擎的性能特征,数据检索模式。在设计数据模型时,总是考虑应用程序使用的数据(如查询、更新和处

理的数据)以及数据本身固有的结构。

文档结构

MongoDB应用程序的数据模型设计的关键决定因素是:围绕文档的结构以及应用程序表示数据之间的关系。有两

个工具,允许应用程序表示这些关系:引用和嵌入的文档。

引用

引用引用存储关系数据,包括链接或引用从一个文档移到另一个地方。应用程序可以解决这些引用访问相关数

据。广泛地说,这些都是规范化数据模型(描述使用引用文档之间的关系。)

使用条件:(1)当可读性能的优势,大于数据重复时(2)表示复杂的多对多关系时(3)大型分层数据集进行建模。

嵌入式

嵌入式存储相关数据捕捉数据之间的关系的文件在一个文档结构。MongoDB文档可以嵌入文档结构的子文档字段

在一个文档或者数组。这些非规范化数据模型允许应用程序检索和操作相关的数据在一个单一的数据库操作。简单说

就是:MongoDB,你可以将相关数据嵌入到一个结构或文档。这些模式通常被称为“非正规”模型,并利用MongoDB的丰

富的文档。不用考虑表结构,嵌入式数据模型允许应用程序相关的信息存储在同一个数据库记录。结果是,应用程序

可能需要完成常用操作问题更少的查询和更新。如下图:

使用条件(1)一对一的关系模型(2)一对多的关系模型

一般而言,嵌入为读操作提供了更好的性能,以及能够在单个数据库操作请求和检索相关数据。嵌入式数据模型能

够更新相关数据在一个单一的原子写操作。然而,在文档中嵌入相关数据可能导致文件创建后的增长情况。文档增长

可影响写性能的影响,导致数据碎片。此外,MongoDB文档必须小于最大BSON文档大小。对于大部分二进制数据,请考虑

GridFS.

写操作的原子性

在MongoDB文档级别的写操作是原子的,没有一个写操作可以自动影响多个文档或多个集合。规范化数据模型与嵌

入式数据结合了所有相关的数据代表的实体在一个文档。这有助于原子写操作从一个写操作可以插入或更新数据实

体。然而,写操作的原子可能会限制应用程序可以使用数据的方式也可能限制修改应用程序的方法。

数据使用和性能

如果应用程序的需求主要是读取操作集合,添加索引支持常见的查询可以提高性能。

时间: 2024-12-20 09:06:08

MongoDB数据模型的相关文章

第二课 MongoDB 数据模型

1.课程大纲 本课程主要介绍MongoDB数据模型相关知识.包含文档.集合与数据库的基本概念.用法及命名规则:MongoDB主要的数据类型介绍以及MongoDB Shell的简单介绍与使用. 文档 (Document) 与 集合 MongoDB 数据类型 MongoDB Shell简单介绍与使用 2.课程简单介绍 本课时将解说 MongoDB 数据类型,首先会对 MongoDB 数据类型做一个简单介绍.然后会对当中几个比較重要的同一时候也是我们在实际项目中常常使用到的数据类型做一个具体介绍,这些

MongoDB数据模型和索引学习总结

MongoDB数据模型和索引学习总结 1. MongoDB数据模型: MongoDB数据存储结构: MongoDB针对文档(大文件採用GridFS协议)採用BSON(binary json,採用二进制编码)数据格式来存储和交换数据.Bson吸收了JSON schema-less的特点,存储结构松散,不须要像RDB(关系数据)那样事先定义数据存储的元数据结构.另外添加了多种数据类型的支持和优化,使读写更加高效. (1) BSON 支持的数据类型: Double.String.Object.Arra

MongoDB数据模型(三)

六.数据模型引用 文档 我们已经知道MongoDB以文档的形式存储数据,而文档是JSON风格的数据结构,由一系列的“字段名-值”对组成,如下所示 { "item": "pencil", "qty": 500, "type": "no.2" } 大多用户可访问的数据结构是文档,这些文档可以表示很多含义,包括: 所有数据库记录. 查询选择器,定义选择什么样的记录用以读取.更新和删除操作. 更新定义,定义需要修改

MongoDB数据模型(二)

原文地址 接上一篇 四.模型树结构 父引用的模型树结构 这个数据模型描述了一个树形结构,在子节点中存储父节点的引用. 模式 父引用模式存储每个树节点到文档中,除了树节点外,文档还存储了父节点的id. 考虑以下目录的层级关系. 以下为应用实例 db.categories.insert( { _id: "MongoDB", parent: "Databases" } ) db.categories.insert( { _id: "dbm", pare

MongoDB (四) MongoDB 数据模型

在 MongoDB 中的数据有灵活的模式.在相同集合中文档并不需要有相同的一组字段或结构的公共字段的集合,文档可容纳不同类型的数据. MongoDB设计模式的一些考虑 可根据用户要求设计架构. 合并对象为一个文件,如果要将它们放在一起.否则分开它们(但确保不需要连接). 重复数据(有限),因为磁盘空间便宜(相比计算时间). 不需要连接写入,而是读. 优化架构是最常见的用例. 在模式上做复杂的聚集. 例子 假设一个客户端需要一个数据库设计,设计一个博客网站,来看看 RDBMS 和 MongoDB

MongoDB快速上手

1.  MongoDB简介 MongoDB是一个跨平台的基于Key_Value键值对形式保存数据的NoSQL文档类型数据库. NoSQL(not only sql)数据库,泛指非关系型数据库. 1.1 NoSQL数据库的特点 l  不需要预定义模式 不需要事先定义数据模式,预定义表结构.数据中的每条记录都可能有不同的属性和格式.当插入数据时,并不需要预先定义它们的模式. l  无共享架构 相对于将所有数据存储的存储区域网络中的全共享架构.NoSQL往往将数据划分后存储在各个本地服务器上.因为从本

MongoDb 学习教程

MongoDB教程首页 MongoDB 介绍 MongoDB 优点 MongoDB 安装(Window/Linux) MongoDB 数据模型 MongoDB 创建数据库 MongoDB 删除数据库 MongoDB 创建集合 MongoDB 删除集合 MongoDB 数据类型 MongoDB 插入文档 MongoDB 查询文档 MongoDB 更新文档 MongoDB 删除文档 MongoDB 投影 MongoDB 限制记录 MongoDB 排序文档 MongoDB 索引 MongoDB 聚合

NoSQL理论基础及安装、基本操作

30分钟开始 分布式系统理论: CAP: 一致性 可用性 分区容错性 MongoDB: 安装 crud 索引 副本集 分片 NoSQL:非关系型.分布式.不提供ACID功能 技术特点: 1.简单数据模型 2.元数据和应用数据分离(分不同服务器存储) 3.弱一致性 优势: 1.避免不必要的复杂性 2.高吞吐量 3.高水平扩展能力和低端硬件集群 4.不适用对象-关系映射 劣势: 1.不支持ACID特性 2.功能简单 3.没有统一的数据查询模型 分类: NoSQL: 键值存储 列式数据库 文档数据库

javascript开源大全

javascript开源大全 Ajax框架-jQuery 可视化HTML编辑器-CKEditor 国产jQuery-UI框架-(jUI)-DWZ 网页开发FireFox插件-Firebug 服务器端的JavaScript脚本-Node.js jQuery图表插件-jQchart HTML5-开发框架-jQuery-Mobile 跨浏览器的RIA框架-ExtJS Flash视频播放器-JW-PLAYER jQuery表单插件-jQuery.form jQuery-File-Upload 可视化HT