我们可以在mongodb中的分片中动态移动文档吗?

时间:2013-04-05 09:58:04

标签: mongodb

我正在构建一个具有以下用例的跟踪平台。

  1. 需要追踪50,000辆车
  2. 每辆车每60秒传递一次位置。
  3. 获取返回X km范围内所有车辆的API。
  4. 因此,我需要扩展写入并实现查询隔离。 我可以使用地理区域创建一个分片群集作为分片键(geohash)。这将有助于我平衡写入并实现查询隔离。但是当车辆穿过区域时会发生什么情况,在这种情况下,mangodb会自动将文档移动到新的碎片?

1 个答案:

答案 0 :(得分:2)

一旦写入,您就无法更改记录的分片键字段。使用区域作为分片键将阻止您跨区域移动,除非您删除原始区域中的记录和使用新区域的插入。

选择分片键时,请查找与最常见查询模式匹配的分片键。查询分片键将允许您直接从分片中检索记录。不使用分片键的查询必须对所有分片执行分散收集查询。

如果已启用或可以使用Mongodb 2.4,并且您不需要执行基于范围的查询,您可能需要考虑使用hashed shard key,即使您的分片键是单调增加。有关选择分片键的建议,请参阅this page