$geoNear
查询都需要地理空间索引,并且只需要一个地理空间索引。
来自文档:
https://docs.mongodb.com/v3.4/reference/operator/aggregation/geoNear/#behavior
$ geoNear需要地理空间索引。
$ geoNear要求集合最多只有一个2d索引和/或只有一个2dsphere索引。
如果我需要对生产系统上的现有地理空间索引进行频繁(每隔几秒一次)$geoNear
次查询,那么如何在不停机的情况下应用此更改?
如果重要的话,我会使用Mongo 3.4,如果这样可以更容易,可以升级到3.6。
答案 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