为啥MongoDB有集合
Posted
技术标签:
【中文标题】为啥MongoDB有集合【英文标题】:Why does MongoDB have collections为什么MongoDB有集合 【发布时间】:2011-11-30 17:52:15 【问题描述】:MongoDB 是面向文档的,集合的结构似乎是文档的一种特殊情况。我的意思是可以定义一个文档来包含其他文档。所以一个集合只是一个包含其他文档的文档。
那么我们到底为什么需要集合呢?
【问题讨论】:
【参考方案1】:逻辑上是的,你可以设计一个这样的数据库系统,但实际上不能。
一个集合在其中的文档上有索引。 集合要求其中的文档具有唯一 ID。 文档的大小有限。【讨论】:
谢谢。文件大小限制是多少? @randomBlue 文档大小:***.com/questions/4667597/… 或许最好参考源码:16MB 目前:mongodb.org/display/DOCS/Documents【参考方案2】: 对象 ID(_id
***文档属性)在集合中必须是唯一的。多个集合可能具有相同的 _id,就像在 RDBM 中键约束是每个表一样,但多个表可能包含相同的键值。
【讨论】:
【参考方案3】:collections 是文档的容器。所以当你说一个包含其他文档的文档有点错误,因为一个文档已经可以有内部文档了。
集合是您将文档放在一起的单元。请注意,由于无模式设计,您可以将任何内容放入集合中,但这不是一个好的设计。所以集合是文档的一种逻辑容器。与关系世界中的表相同。
【讨论】:
以上是关于为啥MongoDB有集合的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB VS MySQL - 为啥 mongo/mongoose 会自动创建数据库和集合?