Jak*_*ake 8 collections mongodb
所以这里只是一个快速的最佳实践问题.我怎么知道何时应该在MongoDB中创建新的集合?
我有一个查询电视节目数据的应用程序.每个节目是否都有自己的集合,或者它们是否应该存储在一个集合中,并在同一文档中包含相关数据.请解释您选择所采用方法的原因.(我仍然是MongoDB的新手.我已经习惯了MySql.)
Noc*_*rno 14
MongoDB不支持跨集合的连接有几个原因,我不会在这里讨论所有这些.但是我们不需要连接的主要原因是因为我们可以将相关数据嵌入到单个分层JSON文档中.在我们存储数据之前,我们可以将其视为预先加入数据.在关系数据库世界中,这相当于对我们的数据进行非规范化.在MongoDB中,这是我们可以做的最常规的事情.
尽管MongoDB不支持连接,但我们仍然可以将相关数据存储在多个集合中,并且仍然可以实现所有这些,尽管可以实现.这要求我们存储对另一个集合中一个集合的密钥的引用.它听起来与关系数据库类似,但MongoDB并没有像大多数关系数据库那样对我们强制执行任何关键约束.执行关键约束完全取决于我们.我们很好管理它,对吗?
以这种方式访问所有相关数据意味着我们需要为存储数据的每个集合至少进行一次查询.由我们每个人决定我们是否可以忍受这一点.
cities
为每个城市创建一个包含单个文档的集合.我们的应用如何访问和使用数据.这需要我们思考?UHG!什么数据一起使用?哪些数据主要用作只读?经常写什么数据?让您的应用程序数据访问模式驱动您的架构,而不是相反.
您所描述的范围对于“一个集合”来说绝对不算太多。事实上,能够将所有内容存储在一个位置是 MongoDB 集合的全部要点。
大多数情况下,您不想像在 SQL 中那样考虑跨组合表进行查询。与 SQL 不同,MongoDB 可以让您避免考虑“JOIN”——事实上,MongoDB 甚至本身并不支持它们。
请参阅此幻灯片: http://www.slideshare.net/mongodb/migration-from-rdbms-to-mongodb? lated=1
具体请看第 24 张以后的幻灯片。请注意 MongoDB 模式如何取代 SQL 和 RDBMS 惯用的多表模式。
在 MongoDB 中,单个文档包含有关记录的所有信息。所有记录都存储在一个集合中。
另请参阅这个问题: MongoDB query multiple collections at Once
归档时间: |
|
查看次数: |
2574 次 |
最近记录: |