【问题标题】:How often shall we reindex the geospatial data in mongodb?我们应该多久重新索引一次 mongodb 中的地理空间数据?
【发布时间】:2013-10-07 09:30:18
【问题描述】:

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

【问题讨论】:

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

标签: mongodb indexing geospatial


【解决方案1】:

你只需要一次ensureIndex;之后,MongoDB 会在每次插入时维护索引。不过,我不是 100% 确定会为删除而维护索引 - 我想它必须这样做。

您可以对索引进行碎片整理并重建它以使其更小,从而实现该功能。一个有用的帖子:

http://jasonwilder.com/blog/2012/02/08/optimizing-mongodb-indexes/

【讨论】:

    猜你喜欢
    • 2011-01-17
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2011-04-22
    • 2016-02-12
    • 2011-10-23
    相关资源
    最近更新 更多