Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
考虑DBRefs的MongoDB分片_Mongodb_Sharding_Dbref - Fatal编程技术网

考虑DBRefs的MongoDB分片

考虑DBRefs的MongoDB分片,mongodb,sharding,dbref,Mongodb,Sharding,Dbref,在第一个集合中,我将DBRef用于另一个集合。 第一个收藏是书籍,第二个是用户(阅读这些书籍的人)。用户可以拥有化身和各种其他信息,这些信息可以合理地保存在单独的集合中。 但现在我需要把藏书分成碎片。如果我在2个节点之间进行切分,用户集合将如何进行切分?我希望将与特定书籍相关的用户保留在同一节点中。可能吗?谢谢 目前,这在标记感知切分()之外是不可能的。Kristina(当她还在10gen时)写了一篇关于如何分发数据的好文章,可以轻松地将多个集合分组: 但是,您可能会发现维护起来非常困难,因此我

在第一个集合中,我将DBRef用于另一个集合。 第一个收藏是书籍,第二个是用户(阅读这些书籍的人)。用户可以拥有化身和各种其他信息,这些信息可以合理地保存在单独的集合中。
但现在我需要把藏书分成碎片。如果我在2个节点之间进行切分,用户集合将如何进行切分?我希望将与特定书籍相关的用户保留在同一节点中。可能吗?谢谢

目前,这在标记感知切分()之外是不可能的。Kristina(当她还在10gen时)写了一篇关于如何分发数据的好文章,可以轻松地将多个集合分组:

但是,您可能会发现维护起来非常困难,因此我不会建议您这样做,除非您只是一名DBA,因为您实际上将花费大部分时间与不断扩展的网络保持一致


我要做的是在
user\u id
上分片书籍,然后在hash
\u id
上分片用户集合,这样您最多只需要查询两个分片

您可以提供一些关于您的模式、使用情况和您目前的想法的信息吗?就目前而言,这是一个广泛而不明确的问题,所以你不太可能得到一个有意义的答案。你需要编辑更多这样的细节。到底什么是不清楚的?有两个集合,它们相互关联。这是一个一般性问题,即我应该如何切分1个集合,以便在ssme节点上拥有来自其他集合的所有相关文档。您没有解释您打算使用什么作为切分密钥或考虑什么,也没有解释为什么希望将某些项保存在一起。谁能回答?看看你收到的答案。当有人试图帮助时,不需要咄咄逼人。你还没有解释过你自己,证据就在结果中。目前,这在标记感知切分之外是不可能的,而且你可能会发现很难维持这样的切分,除非你仅仅是一个DBA,否则我不会建议你,因为你将花费你的大部分时间与一个不断扩展的网络保持一致,比如那个我要做的是在用户id上分书,然后在用户id上分用户集合。这样,您只需在mostNeil Lunn查询两个分片,对不起,如果我显得咄咄逼人,因为我缺乏mongo知识,不清楚我还应提供哪些其他详细信息。我希望相关碎片保留在同一实例上的原因是,这样我就不会通过网络在其他集合中进行查找。如果我知道碎片键应该是什么,我为什么要问?:)Sammaye的回答似乎很有道理。谢谢我可以使用DBRefs进行切分,还是应该是user_id?@NersesKanayan你可以使用db refs,但我不会,我只会使用objectid