如何修改2dsphere索引而不停机$ geoNear查询?

时间:2017-12-19 00:05:38

标签: mongodb

$geoNear查询都需要地理空间索引,并且只需要一个地理空间索引。

来自文档:

https://docs.mongodb.com/v3.4/reference/operator/aggregation/geoNear/#behavior

  
      
  • $ geoNear需要地理空间索引。

  •   
  • $ geoNear要求集合最多只有一个2d索引和/或只有一个2dsphere索引。

  •   

如果我需要对生产系统上的现有地理空间索引进行频繁(每隔几秒一次)$geoNear次查询,那么如何在不停机的情况下应用此更改?

如果重要的话,我会使用Mongo 3.4,如果这样可以更容易,可以升级到3.6。

1 个答案:

答案 0 :(得分:0)

我刚刚在MongoDB 4.2.x上尝试过,看来不再是问题。我不知道此问题已在哪个版本中得到解决/改进。我在同一集合上有两个2dsphere索引,没有查询出问题。

根据文档,这仍然是一个问题,但仅适用于$geoNear个查询,您可以通过告诉它使用哪个索引来解决该问题:

  • 如果您的收藏夹具有多个2dsphere索引和/或多个2d 索引,您必须使用key选项来指定索引字段路径 使用。
  • 如果不指定密钥,则不能有多个 2dsphere索引和/或多个2d索引,因为没有键,索引 多个2d索引或2dsphere索引之间的选择不明确。

https://docs.mongodb.com/manual/core/2dsphere/#geonear-and-geonear-restrictions