MongoDB (四) MongoDB 数据模型

在 MongoDB 中的数据有灵活的模式。在相同集合中文档并不需要有相同的一组字段或结构的公共字段的集合,文档可容纳不同类型的数据。

MongoDB设计模式的一些考虑

  • 可根据用户要求设计架构。
  • 合并对象为一个文件,如果要将它们放在一起。否则分开它们(但确保不需要连接)。
  • 重复数据(有限),因为磁盘空间便宜(相比计算时间)。
  • 不需要连接写入,而是读。
  • 优化架构是最常见的用例。
  • 在模式上做复杂的聚集。

例子

假设一个客户端需要一个数据库设计,设计一个博客网站,来看看 RDBMS 和 MongoDB 架构设计之间的差异。网站有以下要求。

  • 每一个文章内容都有独特的标题,描述和网址。
  • 每一个文章内容可以有一个或多个标签。
  • 每一个文章内容都有其出版商总数喜欢的名称。
  • 每一个文章内容有评论以及名字,消息,时间和喜欢的用户。
  • 对于每个文章,可以是零个或多个评论。

上述要求在RDBMS模式设计,将有至少三个表。

在MongoDB 模式设计就文章一个集合,并具有以下结构:

{
   _id: POST_ID
   title: TITLE_OF_POST,
   description: POST_DESCRIPTION,
   by: POST_BY,
   url: URL_OF_POST,
   tags: [TAG1, TAG2, TAG3],
   likes: TOTAL_LIKES,
   comments: [
      {
         user:‘COMMENT_BY‘,
         message: TEXT,
         dateCreated: DATE_TIME,
         like: LIKES
      },
      {
         user:‘COMMENT_BY‘,
         message: TEXT,
         dateCreated: DATE_TIME,
         like: LIKES
      }
   ]
}

因此,尽管RDBMS要显示数据,需要加入三个表,而在MongoDB数据只是从一个集合。

时间: 2024-08-14 19:42:26

MongoDB (四) MongoDB 数据模型的相关文章

mongoDB (四) mongoDB认证

mongoDB认证 单节点认证 配置文件: authorization: enable [[email protected] ~]# vim /data/mongodb/27017/mongodb.conf systemLog: destination: file logAppend: true path: /data/mongodb/27017/mongodb.log storage: dbPath: /data/mongodb/27017/ journal: enabled: true pr

Spring Data MongoDB 四:基本文档修改(update)(一)

Spring Data MongoDB 三:基本文档查询(Query.BasicQuery)(一) 学习MongoDB 二:MongoDB添加.删除.修改 一.简介 Spring Data  MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的update的操作,可以对在存储数据时是以键-值对的集合键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档进行修改,我们今天介绍对基本文档的修改的方法.参数进

MongoDB (八) MongoDB 文档操作

一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基本语法如下: >db.COLLECTION_NAME.insert(document) 例子 >db.mycol.insert({ _id: ObjectId(7df78ad8902c), title: 'MongoDB Overview', description: 'MongoDB is no

mongoDB(三) mongoDB分片集群

mongoDB分片集群 介绍 解决数据分片,防止数据丢失生产环境需要擦用分片+副本集的部署方式 组成部分 route: 提供入口,不存储数据 configserver: 存储元数据信息,建议使用副本集 shardserver: 数据存储服务,存储真正数据, 也许要使用副本集 依赖关系 当数据插入时,需要从configsrv知道数据要插入哪个shardsrv分片 当用户获取数据时,需要从configsrv知道数据存储在哪个shardsrv分片 集群搭建 使用同一份mongodb二进制文件 修改对应

每篇半小时1天入门MongoDB——2.MongoDB环境变量配置和Shell操作

上一篇:每篇半小时1天入门MongoDB——1.MongoDB介绍和安装 配置环境变量 Win10系统为例 右键单击“此电脑”——属性——高级系统设置——高级——环境变量,添加C:\Program Files\MongoDB\Server\3.0\bin;.注意:要以;隔开各种变量. 这样的话就可以直接在CMD命令窗口中输入mongo 表示环境变量设置成功,并已经连接到默认数据库test中. 我们可以输入mongod --help来查看相关的帮助信息 C:\Users\zouqi>mongod

[MongoDB] 安装MongoDB配置Replica Set

url:http://blog.csdn.net/hf81970/article/details/19643639 MongoDB的环境主要包括StandAlone,Replication和Sharding. StandAlone:单机环境,一般开发测试的时候用. Replication:主从结构,一个Primary,多个Secondary,可能会有Arbitry. Primary挂掉之后,会选举出一个Secondary作为Primary,与zookeeper类似. Arbitry上面不存数据,

【MongoDB】MongoDB的安装教程

1,MongoDB简介 MongoDB也是一种数据库,只不过它既不是关系型数据库,也不是非关系型数据库(NoSQL),而是一种介于关系型数据库和NoSQL之间的一种数据库.如果说非关系型数据库是轻量级的,具有存取速度快的特点.关系型数据库是重量级的,具有存储数据量大,数据安全,查询统计方便等特点.那么MongoDB就有非关系型数据库存储数据快的特点,又有关系型数据库存储数据量大.安全等特点. MongoDB是基于分布式文件存储的数据库 MongoDB是介于NoSQL和关系型数据库之间的一款产品

搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展

上一篇:搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展 一.安装MongoDB 1.创建mongodb用户组和用户 groupadd mongodb useradd -r -g mongodb -s /sbin/nologin -M mongodb 2.下载mongodb源码包,并将源码包放到/usr/local/src/目录下下载页面:https://www.mongodb.com/download-center?jmp=nav这里用的是 mongodb-linux-x

PHP7源码安装MongoDB和MongoDB拓展

一.安装MongoDB 1.创建mongodb用户组和用户 groupadd mongodb useradd -r -g mongodb -s /sbin/nologin -M mongodb 2.下载mongodb源码包,并将源码包放到/usr/local/src/目录下下载页面:https://www.mongodb.com/download-center?jmp=nav这里用的是 mongodb-linux-x86_64-rhel62-3.2.10.tgz下载地址:https://fast