2010-04-10 72 views
2

在Mongo中,我的理解是您可以拥有数据库和集合。我正在研究一个社交型应用程序,该应用程序会有博客和评论(以及其他内容),并且以前使用MySQL和相当繁重的分区来试图限制可能发生的并发问题。MongoDB - 正确使用集合?

用MySQL,我塞进我的所有用户数据到数据库_user有几个表,以进一步对数据进行分区(博客,网页等)。

我与蒙戈的直接反应将是每用户一个集创建一个“用户”数据库。通过这种方式,用户的“zach”博客条目将进入“zach”集合,并带有相关注释,并且这些将成为同一个集合中的子对象。基本上像在MySQL中为每个用户动态创建一个表,但显然没有可能施加的复杂性和限制。

当然,因为我无法衡量这个想法的(啊哈..)的质量和潜在的问题,它可能导致的道路之前,我还没有真正使用蒙戈。

我希望用户数据在用户创建/非共享(主要)被放到一个位置的* nix环境中被处理很多用户目录(当前使用的MySQL将是如上所述的appname_users以上)。

大多数用户数据将特定于用户页面。跨所有站点用户查询的一些用户数据(可搜索的用户配置文件)目前保存在单独的数据库/表中,我希望像这样的内容可以放入appname_system数据库中,并分解为集合和/或特定于应用程序数据库(appname_profiles)。

无论如何,因为在这个现有的文件是目前有点薄,我的经验是,我想我可能会发现从别人一些指导与系统的一个更好的工作的了解极为有限。

从另一方面来说,我真的已经试图将MySQL视为一个无模式文档存储,并且使用Mongo这样做似乎更加直观/理性/理性,所以我非常期待着入门。

感谢, 扎克

回答

2

我有同样的应用程序。

有些事情要考虑:你可以在集合之间进行交叉查询,而不是在数据库之间进行查询。 所以,最好让数据库中包含所有数据,然后为每个对象创建一个集合。

然后每个文档可以包含任何种类和数量的字段。

我试图避免嵌入阵列B/C我有麻烦查询正确我的目标(这是工作正常,但我的系统的架构是专为这种用途)

和数据库可以几个之间共享自动切断所以空间不是问题(如果你有超过1台服务器)

+0

谢谢Stunti。希望获得更多与收藏相关的响应,但数据库信息也非常有帮助。由于它看起来并不像我会看到更多的答案,我会接受你的答案。非常感谢分享! – zmg 2010-04-15 21:02:11

+0

你有一个跨越集合的查询的例子吗? – Thilo 2010-08-30 01:05:04