MongoDB 数据建模
<h2 id="版权所有未经许可禁止转载">版权所有,未经许可,禁止转载</h2><div class="article-child "><h2>章节</h2><ul><li class="page_item page-item-3270">MongoDB 入门</li>
<li class="page_item page-item-3272">MongoDB 优势</li>
<li class="page_item page-item-3274">MongoDB 安装</li>
<li class="page_item page-item-3277">MongoDB 数据建模</li>
<li class="page_item page-item-3279">MongoDB 创建数据库</li>
<li class="page_item page-item-3281">MongoDB 删除数据库</li>
<li class="page_item page-item-3283">MongoDB 创建集合</li>
<li class="page_item page-item-3285">MongoDB 删除集合</li>
<li class="page_item page-item-3287">MongoDB 数据类型</li>
<li class="page_item page-item-3290">MongoDB 插入文档</li>
<li class="page_item page-item-3292">MongoDB 查询文档</li>
<li class="page_item page-item-3294">MongoDB 更新文档</li>
<li class="page_item page-item-3296">MongoDB 删除文档</li>
<li class="page_item page-item-3298">MongoDB Projection</li>
<li class="page_item page-item-3300">MongoDB Limit</li>
<li class="page_item page-item-3303">MongoDB 排序</li>
<li class="page_item page-item-3306">MongoDB 索引</li>
<li class="page_item page-item-3308">MongoDB 聚合</li>
<li class="page_item page-item-3310">MongoDB 备份数据</li>
</ul></div>
<hr>
<p>MongoDB中的数据结构很灵活。同一集合中的文档,数据结构不必相同。</p>
<h2 id="mongodb中设计数据结构时的一些注意事项">MongoDB中设计数据结构时的一些注意事项</h2>
<ul>
<li>根据用户需求设计数据结构。</li>
<li>如果需要把对象组合在一起使用,例如:文章与评论,可将它们放到一个文档中。</li>
<li>可以适当有数据冗余,因为与计算时间相比,磁盘空间更便宜。</li>
</ul>
<h2 id="例子">例子</h2>
<p>假设我们需要为一个博客网站设计数据库。博客网站有以下要求:</p>
<ul>
<li>每个帖子都有唯一的标题、描述和url。</li>
<li>每个帖子可以有一个或多个标签。</li>
<li>每一篇文章都有其发布者的名字和总点赞数。</li>
<li>每个帖子都有用户评论,评论包括姓名、评论内容、评论时间和点赞数。</li>
<li>每个帖子都可以有0条或更多评论。</li>
</ul>
<p>在关系数据库中,针对上述需求的设计,将至少有三个表。</p>
<p><img src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly93d3cucWlrZWd1LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOS8wNi9yZGJtcy0xLnBuZw"></p>
<p>而在MongoDB中,将有一个集合post,结构如下</p>
<pre><code class="language-json">{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: ,
likes: TOTAL_LIKES,
comments: [
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}
</code></pre>
<p>因此,在显示数据时,在关系数据库中,需要连接三个表,在MongoDB中,只需读取一个集合中的数据。</p><br><br>
来源:https://www.cnblogs.com/jinbuqi/p/11268440.html
頁:
[1]