我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mongodb中的数据建模

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mongodb中的数据建模

一对一的关系:Embed,比如用户信息集合有Address字段,Address字段有省、市、县三个字段。建模如下:

mongodb中的数据建模

mongodb中的数据建模

一对多关系:一篇文章有多条评论,为1对多关系

mongodb中的数据建模mongodb中的数据建模

由于MongoDB对单个文档(document)有大小限制16M(高于v1.8),设计时也要将这个限制纳入考虑中。

多对多关系:学生和课程是多对多的关系,一个学生可以选多门课程,一门课程有多名学生参与。

mongodb中的数据建模

多对多使用了连接(Linking),连接是通过引用(References)来连接两个集合。MongoDB References有两种:一种是 手动引用(Manual References),另一种是DBRefs。

Manual References:

mongodb中的数据建模(user集合)

mongodb中的数据建模(post集合)

红框地方就是Manual References,如果想查询一篇文章的作者信息,首先在post集合找出那篇文章,然后在user集合查找出用户的全部信息。但是假如有这么一个场 景:用户可以对图片,文章等各种资源评论,所有的评论都放在comment集合中,如果只是使用Manual References,就分不清楚评论到底是属于哪类资源了,图片?文章?。所以有了DBRef。

DBRef的形式:

{ $ref : <value>, $id : <value>, $db : <value> }

$ref:集合名称;$id:引用的id;$db:数据库名称,可选参数。

可以看到DBRef的结构比Manual References的复杂,占用的空间大,但是功能也强大,如果要跨数据库连接,上面讲的评论集合的例子,都得需要使用DBRef,MongoDB提供 了函数来解析DBRef,不用像Manual References需要自己手动写两次查询。

mongodb中的数据建模

关于MongoDB的数据建模MongoDB官网也给出了一些建议。这些建议都是提供了一些参考,实际建模需要根据具体的需求来分析,分析数据经常会执行哪些操作(排序,查找,修改)来选择Embed和Link。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mongodb中的数据建模

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MongoDB数据建模怎么实现

在MongoDB中,数据建模是通过设计文档结构来实现的。以下是一些MongoDB数据建模的最佳实践:嵌套文档:利用MongoDB的嵌套文档功能,将相关的数据存储在同一个文档中,可以减少数据的冗余和提高查询性能。引用:在某些情况下,可以使用引
MongoDB数据建模怎么实现
2024-05-07

mongodb怎么新建数据

要在MongoDB中新建数据,你可以使用`insertOne()`或`insertMany()`方法。如果你要插入单个文档,可以使用`insertOne()`方法。该方法接受一个文档对象作为参数,并将其插入到指定集合中。例如:```db.c
2023-09-01

mongodb创建的数据库在哪里

mongodb 数据库的数据存储在指定的数据目录中,该目录可以位于本地文件系统、网络文件系统或云存储中,具体位置如下:本地文件系统:默认路径为 linux/macos:/data/db,windows:c:\data\db。网络文件系统:路
mongodb创建的数据库在哪里
2024-04-08

mongodb的数据库表怎么创建

MongoDB是一个文档数据库,不使用传统的表和行的概念,而是使用集合(collection)和文档(document)的概念。要创建一个集合,可以使用`createCollection`方法:```javascriptdb.createC
2023-08-24

怎么创建mongodb数据库

要创建一个MongoDB数据库,您需要按照以下步骤进行操作:安装MongoDB:首先,您需要安装MongoDB数据库软件。您可以从MongoDB官方网站上下载适合您操作系统的安装程序,并按照安装向导进行安装。启动MongoDB:安装完成后,
怎么创建mongodb数据库
2024-04-09

Cassandra数据建模

1.  概述Apache Cassandra将数据存储在表中,每个表都由行和列组成。CQL(Cassandra查询语言)用于查询存储在表中的数据。Apache Cassandra数据模型基于查询并针对查询进行了优化。Cassandra不支持用于关系数据库的关系
Cassandra数据建模
2019-01-28

MongoDB中怎么优化大规模数据迁移

在MongoDB中优化大规模数据迁移的过程,可以通过以下几种方式来实现:使用批量操作:在进行数据迁移时,可以使用MongoDB的批量操作功能,通过一次性操作多条数据来提高迁移效率。这样可以减少与数据库的交互次数,提高迁移速度。使用索引:在进
MongoDB中怎么优化大规模数据迁移
2024-04-19

Golang在数据建模中的关键特性

go 语言在数据建模中凭借以下特性脱颖而出:静态类型系统,避免运行时错误;接口机制,实现类型之间的解耦;goroutine 并发,提高处理效率。实战案例中,使用 go 语言实现了一个简单 orm,利用 person 结构体定义数据库模式,并
Golang在数据建模中的关键特性
2024-05-09

mongodb创建数据库的方法是什么

在MongoDB中创建数据库的方法是使用use命令。通过在MongoDB shell中输入use命令,然后指定要创建的数据库名称,MongoDB会自动创建这个数据库。如果指定的数据库已经存在,则会切换到该数据库。例如,要创建一个名为myda
mongodb创建数据库的方法是什么
2024-04-09

mongodb数据库怎么创建索引

小编给大家分享一下mongodb数据库怎么创建索引,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、索引命令创建索引db.stu.ensureIndex({“name”:1})创建唯一索引db.stu.ensureInde
2023-06-14

编程热搜

目录