“文档” 菜单
文档首页
/
MongoDB Manual
/ / /

2 d 索引

在此页面上

  • 用例
  • 开始体验
  • 详情
  • 支持的计算
  • 复合 2D 索引
  • sparse 属性
  • 了解详情

2 d 索引支持对存储为二维平面上的点的数据进行查询。 2 d 索引用于查询传统坐标对。

要创建 2D 索引,则指定字符串 2d 作为索引类型:

db.<collection>.createIndex( { <location field> : "2d" } )

无法使用 2D 索引查询 GeoJSON 对象。要对 GeoJSON 对象进行查询,使用 2dsphere 索引

注意

创建 2 d 索引时,第一个值(经度)必须介于 - 180和180 (含)之间。 第二个值(纬度)必须介于90和90 (含)之间。 但是,可以使用2 d 索引上minmax选项覆盖这些默认限制。 与2 dsphere 索引坐标不同, 2d indexes值不会“环绕”球体。

使用 2D 索引对二维平面内的数据进行查询和计算。例如:

  • 用于分析两件艺术作品之间视觉相似度的应用程序。

  • 可以对二维图形进行计算的计算器。

  • 用于计算二维地图上玩家之间距离的手机游戏。

要了解如何创建和查询 2D 索引,请参阅:

2D 索引支持在平坦的欧几里得平面上进行计算。

对于球形几何计算,将数据存储为 GeoJSON 对象,并使用 2dsphere 索引支持地理空间查询。

您可以创建引用两个字段的复合 2D 索引:

  • 第一个字段必须为位置字段。索引构建首先在此字段上选择的查询。

  • 第二个字段根据其他条件进一步筛选结果。

复合 2D 索引可涵盖查询。

2D 索引始终是稀疏索引,忽略稀疏选项。如果文档缺少 2D 索引字段(或者该字段为 null 或空数组),则 MongoDB 不会将该文档的条目添加到 2D 索引。对于插入操作,MongoDB 会插入文档,但不会添加到 2D 索引中。

对于包含 2D 索引键以及其他类型键的复合索引,只有 2D 索引字段确定索引是否引用文档。

← 2dsphere 索引版本