mongodb中的数据具有灵活的模式。文档在同一集合,但它们不需要具有相同的字段或结构集合,集合文档中的公共字段可以包含不同类型的数据。
mongodb中的数据具有灵活的模式。与sql数据库不同,sql数据库必须在插入数据之前确定和声明表的模式,mongodb的集合不会强制执行文档结构。这种灵活性有助于将文档映射到实体或对象。 每个文档可以匹配表示实体的数据字段,即使数据具有实质性的变化。然而,集合中的文档具有类似的结构。
数据建模中的关键挑战是平衡应用程序的需求,数据库引擎的性能特征和数据检索模式。 在设计数据模型时,请始终考虑数据的应用程序使用情况(即数据的查询,更新和处理)以及数据本身的固有结构。
在mongodb中设计架构时有一些考虑:
假设客户需要他的博客/网站的数据库设计,并查看rdbms和mongodb架构设计之间的区别。网站有以下要求。
在rdbms架构中,上述要求的设计将具有最少的三个表。表与表之间的关系如下 -
而在mongodb模式中,设计将有一个集合post
,其结构以下 -
{
_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中,数据将仅显示在一个集合中。