为啥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 会自动创建数据库和集合?

为啥 MongoDB 文档建议不要使用 DBREF?

为啥 MongoDB 将已删除的文件保留在磁盘上?

MongoDB:即使查询的所有字段都被索引,为啥我的扫描对象值很高?

为啥以及何时需要在 MongoDB 中重建索引?

为啥这个 PHP MongoDB 查询即使有结果也不返回任何结果?