我们应该多久在mongodb中重新索引一次地理空间数据?

我们应该多久在mongodb中重新索引一次地理空间数据?,mongodb,indexing,geospatial,Mongodb,Indexing,Geospatial,我想知道是否必须在mongodb中重新索引地理空间数据,如果插入了一些新的地理数据以进行搜索?假设我们有一个文档,它看起来像: {user:'a',loc:[363.236,-45.365]},它被索引。后来,我插入了文档b,看起来像:{user:'b',loc:{42.3654,-56.3}}。为了进行搜索,是否每次插入新文档时都必须重新索引(使用ensureIndex())集合?频繁的重新索引是否会影响应用程序的整体性能? 谢谢 您只需确保索引一次;之后,MongoDB会在每次插入时维护索引

我想知道是否必须在mongodb中重新索引地理空间数据,如果插入了一些新的地理数据以进行搜索?假设我们有一个文档,它看起来像:
{user:'a',loc:[363.236,-45.365]}
,它被索引。后来,我插入了文档b,看起来像:
{user:'b',loc:{42.3654,-56.3}}
。为了进行搜索,是否每次插入新文档时都必须重新索引(使用ensureIndex())集合?频繁的重新索引是否会影响应用程序的整体性能?
谢谢

您只需确保索引一次;之后,MongoDB会在每次插入时维护索引。不过,我不能100%确定索引是为删除而维护的——我想它一定会这样做

您可以对索引进行碎片整理并重新构建索引,使其变小,从而使该功能得以存在。有用的帖子:


MongoDB为您维护索引在我搜索位置之前,我每次都必须使用ensureIndex()吗?不,正如我所说,一旦您创建了索引,MongoDB将为您维护它。另外一个问题是:假设我有一个文档,看起来像:{loc start:{x,y],end:[x1,y1]}和2dsphere index,我想用一个查询搜索所有具有相同起点和终点的文档。可以在mongodb中实现吗?