我有一个案例,在第一个集合中我使用DBRef到另一个集合。 第一个是Books,第二个是Users(读过那些书)。用户可以拥有头像和各种其他信息,这是合理的保持单独的集合。 但是现在我需要对书籍集进行分类。如果我在2个节点之间对其进行分片,那么Users集合将如何分片?我想在同一节点中保留与特定书籍相关的用户。那可能吗?谢谢!
答案 0 :(得分:1)
目前,在标签感知分片(http://docs.mongodb.org/manual/core/tag-aware-sharding/)之外,这是不可能的。克里斯蒂娜(当她还在10gen时)写了一篇关于如何分发数据的好文章,可以很容易地用来分组多个集合:http://www.kchodorow.com/blog/2012/07/25/controlling-collection-distribution/
然而,您可能会发现很难维护,除非您完全是DBA,否则我不会建议它,因为您将花费大部分时间将其与不断扩展的网络保持在一起。
我要做的是将user_id
上的书籍分片,然后在散列_id
上对用户集进行分片,这样您最多只需要查询两个分片