【发布时间】:2018-05-12 07:45:30
【问题描述】:
我正在使用 Spring Boot 和 Spring Data MongoDB 与底层分片 MongoDB 集群进行交互。我的 Spring Boot 应用程序通过 mongos 路由器访问集群。
使用 Spring Data MongoDB,您可以通过 @Document(collection = "nameOfCollection") 指定对象持久化到的集合,或者默认为类名(第一个字母小写)。这些集合不需要预先存在;它们可以在运行时创建。
要在 MongoDB 中对集合进行分片,您需要
1 - 在数据库上启用分片:sh.enableSharding("myDb")
2 - 在分片数据库上对集合进行分片:sh.shardCollection("myDb.myCollection", {id:"hashed"})
假设有一个现有的分片数据库,Spring Data MongoDB 是否提供了一种使用分片键对集合进行分片的方法?据我所知,我无法使用 Spring 对集合进行分片,并且因此必须在我的启动应用程序运行之前配置分片集合。我觉得奇怪的是 Spring 允许我使用未定义的集合,但不提供配置集合的方法。
编辑: 我见过Sharding with spring mongo 和How configuring access to a sharded collection in spring-data for mongo?,它们更多地指的是分片MongoDB 集群的部署。这个问题假设所有的管道都在那里,并且集合本身必须被分片。
【问题讨论】:
标签: spring mongodb spring-boot spring-data-mongodb