Mongodb数据库设计创建

时间:2014-10-14 17:54:26

标签: mongodb database nosql

这是我第一次使用NoSQL。所以我对它的设计创作非常困惑。我读到MongoDB数据库包含Document,文档包含Collection,集合包含Fields
我的问题是,如果我想创建一个数据库和一个表User和字段Usernamepassword
收藏= 用户
字段= 用户名和密码
那么Document ??的目的是什么? 也许这个问题的标准很低,但请注意这是我第一次使用NoSQL时遇到的问题。

2 个答案:

答案 0 :(得分:2)

对于MongoDB结构,文档将是User,在文档内部,您可以根据需要使用Fields或甚至文档。集合是一组文档。

enter image description here

我建议您阅读JSON文档和MongoDB Data Modeling

文档: MongoDB集合中的记录和MongoDB中的基本数据单元。文档类似于JSON对象,但在数据库中以更多类型丰富的格式存在,称为BSON。

收藏:一组MongoDB文档。集合相当于RDBMS表。集合存在于单个数据库中。集合不强制执行架构。集合中的文档可以具有不同的字段。通常,集合中的所有文档都具有相似或相关的目的。

答案 1 :(得分:0)

如果您熟悉关系数据库,则可以将集合视为表(关系),将文档视为行(元组),将字段视为列(属性)。区别在于与文档(元组)而非集合(关系)相关的字段(属性)。因此,无模式,因为集合不会对它所持有的文档施加任何约束。并且文档可以包含其他文档作为字段,这违反了规范化,并且在关系模型中没有多大意义,因为嵌套元组没有存储任何属性。考虑Person文档与行对应:

{ lastname: 'Average', firstname: 'Joe', address: { country: 'USA', city: 'NY' } }

+----------+-----------+---------+
| lastname | firstname |  adress |
+----------+-----------+---------+
| Average  |    Joe    | USA, NY |
+----------+-----------+---------+
相关问题