Trello如何在MongoDB中存储数据?(每个板的收集?)

Trello如何在MongoDB中存储数据?(每个板的收集?),mongodb,database-design,database-schema,trello,Mongodb,Database Design,Database Schema,Trello,Trello如何在MongoDB中存储数据(卡) 我读到()他们的Actions集合是最大的一个。因此,我假设它们不会将所有卡片存储在一个巨大的集合中 唯一的其他逻辑解决方案似乎是每个板或每个用户的集合。但是他们有很多用户,我读到()对集合的数量有限制,一些人建议不要使用很多集合 我希望Trello团队的人会回答这个问题,我也希望能从普通社区得到一些解决这类问题的想法 Trello将所有卡片存储在一个集合中。集合在卡片的董事会id上进行切分。为什么他们不将其全部存储在一个集合中,并切分他们查询的

Trello如何在MongoDB中存储数据(卡)

我读到()他们的Actions集合是最大的一个。因此,我假设它们不会将所有卡片存储在一个巨大的集合中

唯一的其他逻辑解决方案似乎是每个板或每个用户的集合。但是他们有很多用户,我读到()对集合的数量有限制,一些人建议不要使用很多集合


我希望Trello团队的人会回答这个问题,我也希望能从普通社区得到一些解决这类问题的想法

Trello将所有卡片存储在一个集合中。集合在卡片的董事会id上进行切分。

为什么他们不将其全部存储在一个集合中,并切分他们查询的内容?这样一来,一次只查询一台计算机,查询速度几乎与一个小集合一样快,此外,他们可能还会将数据ping到其他区域,以便响应时间保持一致,不久您就可以将一个完全可伸缩的集合收集到数十亿行中。你还必须记住,锁是db级别的,所以如果他们要使用某些东西的倍数,那么snese可能会使用DBs的倍数。@Sammaye我不理解“他们查询的内容上的碎片”部分。您可以查看一个板中的所有卡,按卡名搜索所有板。。。我理解切分的基本原理,但我不明白如何才能做到你所说的。你能再解释一下吗?好的,我用trello只花了10分钟,我已经知道如果我设计这个网站,我会有三个集合:
user
board
card
。我会在
board\u id
上为
board
进行切分,因为一个board需要能够被许多用户访问。这样,当您查询用户(在
{u id,username,email}
上分片)时,就可以得到他们所有的扩展板。电路板列表将嵌入电路板行,但不会嵌入卡。这些卡可能会被分为板id和时间戳,也可能是用户id。这是我第一次浏览10分钟,他们可能不使用MongoDB,我自己在视频网站上使用Sphinx,因为MongoDB并不惊人,FTS索引存储和效率。也就是说,对于单个列表或单板上的本地化搜索,他们可能会使用这里描述的想法:@Sammaye在trello中,每个用户在单板上都有一个角色(权限)。那么您会在每个用户中存储嵌入参与{board_id,role}吗?通过这种方式获取所有用户的board会很容易,但如果你想获取所有board用户,你必须查询用户集合,看看他们是否有该board_id的参与。或者你还会在每个board上维护一个用户id列表吗?我看到了很多可能性,但是什么是“最好的”一个呢?你知道在哪一点上分片是必要的吗?我是MongoDB的新手,正在制作一个可能需要扩展的应用程序。