这是我第一次使用NoSQL。所以我对它的设计创作非常困惑。我读到MongoDB
数据库包含Document
,文档包含Collection
,集合包含Fields
。
我的问题是,如果我想创建一个数据库和一个表User
和字段Username
,password
:
收藏= 用户
字段= 用户名和密码
那么Document
??的目的是什么?
也许这个问题的标准很低,但请注意这是我第一次使用NoSQL
时遇到的问题。
答案 0 :(得分:2)
对于MongoDB结构,文档将是User,在文档内部,您可以根据需要使用Fields或甚至文档。集合是一组文档。
我建议您阅读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 |
+----------+-----------+---------+