在 Mongo 中,我的理解是您可以拥有数据库和集合。我正在开发一个社交类型的应用程序,该应用程序将包含博客和评论(以及其他内容),并且以前使用 MySQL 和相当重的分区以试图限制可能的并发问题。
使用 MySQL,我已将所有用户数据填充到具有多个表的 _user 数据库中,以进一步划分数据(博客、页面等)。
我对 Mongo 的直接反应是创建一个“用户”数据库,每个用户有一个集合。通过这种方式,用户“zach”的博客条目将与相关的评论一起进入“zach”集合,从而成为同一集合中的子对象。基本上就像在 MySQL 中为每个用户动态创建一个表一样,但显然没有可能强加的复杂性和限制。
当然,因为在我无法衡量这个想法的(咳咳……)质量以及它可能导致的潜在问题之前,我还没有真正使用过 Mongo。
我希望用户数据被视为非常像 *nix 环境中的用户目录,其中用户创建/非共享(大部分)被放置在一个地方(目前使用 MySQL,即上面提到的 appname_users)。
大多数用户数据将特定于用户页面。在所有站点用户(可搜索的用户配置文件)中查询的一些用户数据当前保存在单独的数据库/表中,我希望这样的内容可以放入 appname_system 数据库并分解为集合和/或特定于应用程序数据库(appname_profiles)。
无论如何,由于目前可用的文档有点薄,而且我的经验非常有限,我想我可能会从对系统工作有更好理解的人那里找到一些指导。
从好的方面来说,我真的已经在尝试将 MySQL 视为无模式的文档存储,并且使用 Mongo 执行此操作似乎更加直观/理智/合理,所以我真的很期待开始。
谢谢,扎克