让我们想象一下我有两个 mongodb 分片集合:喜欢和评论。
两个集合都是分片的,两个集合都将 userId 作为分片键。
让我们想象一下,喜欢的收藏量很大,而评论的收藏量很小。我总共有 10 个分片,我们将它们命名为分片 A 到分片 G。
我可以假设如果某个特定用户的点赞在分片 A 中,那么他的评论也会在分片 A 中吗?
所以我想要实现的是将任何特定用户的数据放在同一个分片中。其他用户的点赞可能在 shard C 中,那么他的评论也应该在 shard C 中。
是否可以配置 MongoDB?(或者这是它默认的工作方式?)
是的,如果你想控制数据位置,你必须使用Zones。请点击此链接以获得有关如何执行此操作的更好解释:https ://docs.mongodb.com/manual/tutorial/sharding-segmenting-shards/ 。