首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

索引系列:2dsphere索引

MongoDB Manual (Version 4.2)> Indexes > 2dsphere Indexes No 1 概述 2dsphere索引支持计算类似地球的球体上的几何形状的查询。...2dsphere索引支持所有MongoDB地理空间查询:包含、相交和邻近度查询。有关地理空间查询的更多信息,请参见地理空间查询。...版本3是在MongoDB 3.2及更高版本中创建2dsphere索引时的默认版本。 版本 2 MongoDB 2.6引入了2dsphere索引的版本2。...如果文档缺少2dsphere索引所在字段(或者该字段为null或空数组),则MongoDB不会将文档条目添加到索引中。对于插入,MongoDB会插入文档,但不添加到2dsphere索引。...这使得geoNear在具有多个2dsphere索引或多个2d索引的文档中也能被使用: 如果您的集合具有多个2dsphere索引或多个2d索引,则必须使用key选项来指定使用哪个索引字段路径。

3.1K10

MongoDB系列6:MongoDB索引的介绍

2.3 多键索引 如果索引字段的值为数组,MongoDB会创建数组中的每个元素的索引键(即多键索引),不需要明确指定多键型。...2.5 地理空间索引 随着移动设备的应用的爆发式增长,有一种查询变得越来越流行:找到离当前位置最近的N个场所。MongoDB为坐标平面查询提供了专门的索引,称作地理空间索引。...索引或2d索引;而地理空间查询操作(例如,$near和$geoWithin)允许集合具有多个地理空间索引。...可以配置高达32位精度的地理空间索引。 索引精度不会影响查询精度。实际的网格坐标总是用于最终的查询处理。降低精度的好处使插入操作使用更少空间和处理开销较低。...precision> } ) 注意事项: ·geoNear命令和$geoNear管道要求集合最多只有1个2dsphere索引或2d索引;而地理空间查询操作(例如,$near和$geoWithin)允许集合具有多个地理空间索引

3K101
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB索引解析:工作原理、类型选择及优化策略

    单字段索引 基于单个字段的值创建索引,适用于经常需要基于单个字段进行查询的场景。 2. 复合索引 基于多个字段的值创建索引,支持查询中使用的字段顺序与索引字段顺序一致的前缀子集。...对于数组中的每个元素,MongoDB都会为其创建一个索引条目,使得我们可以高效地查询数组字段中包含特定元素的文档。 4....地理空间索引 用于支持地理位置的查询和计算,包括2dsphere索引(用于球面地理空间数据)和2d索引(用于平面地理空间数据)。 5....多键索引 对于数组字段,MongoDB会自动为多键索引中的每个数组元素创建索引条目。...地理空间索引 对于地理空间数据,可以创建 2dsphere 或 2d 索引: db.collection.createIndex({ location: "2dsphere" }) // 球面地理空间索引

    82610

    玩转mongoDB(七):索引,速度的引领(全文索引、地理空间索引)

    本篇博文主要介绍mongoDB中一些常用的特殊索引类型,主要包括:用于简单字符串搜索的全文本索引;用于球体空间(2dsphere)的地理空间索引用于二维平面(2d)的地理空间索引。...db.news.find({$text:{$search:"flotation"}}) 结果如下图所示:图片二、2dsphere索引 2dsphere索引是mongoDB最常用的地理空间索引之一...2dsphere索引: db.mapinfo.ensureIndex({"loc":"2dsphere"}) 地理空间查询的类型有三种:交集(intersection)、包含(within)、接近...最常用的地理空间索引之一,用于游戏地图。...2d索引用于扁平表面,而不是球体表面。如果用在球体表面上,在极点附近会出现大量的扭曲变形。 文档中应该使用包含两个元素的数组表示2d索引字段。

    1.3K31

    MongoDB教程(四):mongoDB索引

    引言 MongoDB 索引的正确设计与使用对于提升数据库查询性能至关重要。...本文将深入探讨 MongoDB 索引的创建、管理与优化策略,通过具体案例展示每种索引类型及其相关命令的实际应用,旨在帮助数据库管理员和开发者掌握 MongoDB 索引的高级技巧,以实现数据库性能的显著提升...全文索引:支持文本搜索。 地理空间索引:用于地理坐标数据的查询。 哈希索引:针对数组字段的优化。 二、索引创建与管理 1....地理空间索引 地理空间索引用于处理地理位置数据,例如: db.locations.createIndex({ "location": "2dsphere" }); 这将创建一个基于地理位置的索引,可以进行近邻搜索...测试索引影响:在生产环境外测试新索引的影响。 五、结论 MongoDB 索引的合理设计与管理对于提升数据库查询性能至关重要。

    10210

    持续搞【附近】系列---听说MongoDB是专业的(三)

    还是得好用才行 一直听说MongoDB才是【专业】搞地理空间查询的,人家才是【专业】的!相当长一段时间来,一说搞【附近】就会相当一批人的脑海里就不自主浮想到MongoDB... ......上面划横线的才是榜样模板式的回答,然而实际上对于我们这个庞大的泥腿子群体而言,MongoDB最大的优势是: 复制粘贴一下demo代码,CURD就能用 MongoDB的地理空间索引分为两种类型: 2d索引...,用于平面地图之流,反正也能用 2dsphere索引,用于地球儿表面的地理查询运算,推荐用法 先说2d索引,然而实际上MongoDB的2d索引的实现底层原理依然是geohash,所以同样其2d索引支持点的存储运算...2dsphere采用的是【谷人希】公司的google S2算法,将S2处理好的索引数据保存在了B-Tree数据结构中,B-Tree可以支持快速查询。...在正式使用2dsphere索引之前,我们要做的就是首先在【某个字段】上创建一个2dsphere索引,大概就是下面这样: <?

    56930

    持续搞【附近的人】---听说MongoDB是专业的(三)

    还是得好用才行 一直听说MongoDB才是【专业】搞地理空间查询的,人家才是【专业】的!相当长一段时间来,一说搞【附近的人】就会相当一批人的脑海里就不自主浮想到MongoDB... ... ?...MongoDB的地理空间索引分为两种类型: 2d索引,用于平面地图之流,反正也能用 2dsphere索引,用于地球儿表面的地理查询运算,推荐用法 先说2d索引,然而实际上MongoDB的2d索引的实现底层原理依然是...2dsphere采用的是【谷人希】公司的google S2算法,将S2处理好的索引数据保存在了B-Tree数据结构中,B-Tree可以支持快速查询。...如果有曾经深入研究过MongoDB这两种地理空间索引实现的老哥们,可以公众号发消息帮我double check一下是否正确。...在正式使用2dsphere索引之前,我们要做的就是首先在【某个字段】上创建一个2dsphere索引,大概就是下面这样: <?

    1.5K30

    浅尝辄止MongoDB:基础

    运行MMAPv1存储引擎的单个数据库默认最多可以创建24000个名称空间,WiredTiger存储引擎没有这个限制。每个集合至少包含两个名称空间:一个用于集合自身,另一个用于集合中创建的第一个索引。...基本上可以将索引看作已经执行并存储了结果的预定义查询。MongoDB中通用的经验规则是:对于需要在MySQL中创建索引的场景,在MongoDB中也应该创建索引。...创建索引的最大优点在于查询常用信息时会很快,因为这些查询不需要遍历整个数据库以收集该信息。 每个集合最多可以拥有40个索引。添加索引将提高查询速度,但也会降低插入或删除的速度。...三、使用地理空间索引 MongoDB从版本1.4开始就已经实现了对地理空间索引的支持,可用于处理基于位置的查询。...一旦在文档中添加地理空间信息,就可以创建此种类型的索引(当然也可以提前创建索引),为ensureIndex()函数提供2dsphere参数: > db.restaurants.ensureIndex(

    1.7K10

    索引实操练习

    ().explain() 是不会命中索引的,,mongodb 会默认走 全文索引 复合索引 索引的顺序跟查询排序相关联 创建复合索引,status 字段 做升序,qty 字段做降序 db.mydoc.createIndex...({status:1, qty:-1}) 我们创建的索引一升一降,查询排序的模式必须与索引键的模式匹配或逆向,也就是说,我们查询的时候, 可以是 {status:-1, qty:1} 也可以是{status...- Closing connection connectionId{localValue:2, serverValue:2409}" } 创建一个 TLL 索引 创建索引的字段是日期或者是日期数组,...https://docs.mongodb.com/manual/core/2dsphere/ 我们来实践一下 球体索引 球体空间索引,2dsphere。...db.places.createIndex( { loc:"2dsphere" } ) 查看索引 > db.places.getIndexes() 创建空间索引的复合索引 以 category

    26420

    MongoDB实战面试指南:常见问题一网打尽

    MongoDB提供了2dsphere、2d和geoHaystack等类型的地理空间索引。其中,2dsphere索引用于地球表面的地理空间数据,支持经纬度坐标和GeoJSON格式。...复合索引的字段顺序对查询性能有影响,应该根据查询模式和数据分布来选择合适的字段顺序。 多键索引(Multikey Index):多键索引用于数组字段,为数组中的每个元素创建索引条目。...适用于查询数组字段中包含特定值的文档的场景。例如,如果有一个包含用户标签的数组字段,可以使用多键索引来加速基于标签的查询。...地理空间索引(Geospatial Index):地理空间索引用于存储和查询地理空间数据,如点、线和多边形。...MongoDB提供了2dsphere、2d和geoHaystack等类型的地理空间索引,适用于不同的地理空间数据和应用场景。

    93610

    MongoDB中的限制与阈值

    警告 MongoDB不支持重复的字段名称 MongoDB查询语言对于具有重复字段名称的文档是未定义的。BSON构建器可能支持使用重复的字段名称创建BSON文档。...MongoDB不会将任何具有索引字段的文档插入到索引集合中,该文档的索引字段的对应索引条目将超过索引键限制,而是将返回错误。MongoDB的早期版本将插入此类文档,但不会为其创建索引。...具有2dsphere索引的字段只能保存几何数据 具有2dsphere索引的字段必须以坐标对或GeoJSON数据的形式保存几何数据。...多键索引 多键索引不能覆盖对数组字段的查询。 地理位置索引 地理位置索引无法覆盖查询。 索引构建中的内存使用情况 createIndexes支持在集合上构建一个或多个索引。...将2d索引用于球形查询可能会导致错误的结果,例如将2d索引用于环绕两极的球形查询。 地理空间坐标 有效的经度值在-180到180之间(包括两者)。 有效的纬度值在-90到90之间(包括两者)。

    14.1K10

    MongoDB教程(十二):MongoDB数据库索引

    本文将深入探讨 MongoDB 索引的基本概念、类型、创建方法以及如何评估索引的效果,通过具体的案例代码展示索引的创建和使用过程,帮助你理解如何在 MongoDB 中有效地使用索引。...二、索引类型 MongoDB 支持多种类型的索引,包括但不限于: 单字段索引 复合索引 唯一索引 全文索引 地理空间索引 哈希索引 三、创建索引 1....全文索引 全文索引支持全文搜索,适用于文本字段。 db.articles.createIndex( { body: "text" } ); 5. 地理空间索引 地理空间索引用于处理地理坐标数据。...db.locations.createIndex( { location: "2dsphere" } ); 四、评估索引效果 使用 explain() 方法可以检查查询的执行计划,评估索引的使用情况。...本文通过详细的案例代码展示了如何在 MongoDB 中创建和管理索引,以及如何评估索引的效果。在实际应用中,应根据查询模式和数据特征,选择合适的索引类型和策略,以达到最佳的性能优化效果。

    24110

    MongoDB中各种类型的索引

    上篇文章中我们介绍了MongoDB中索引的简单操作,创建、查看、删除等基本操作,不过上文我们只介绍了一种类型的索引,本文我们来看看其他类型的索引。...---- _id索引 我们在上文介绍过,我们往集合中添加文档时,默认情况下MongoDB都会帮助我们创建一个名为_id的字段,这个字段就是一个索引。...time表示索引的字段,time的数据类型必须是ISODate或者ISODate数组,否则的话,当索引过期之后,time的数据就不会被删除。...2d sphere索引 2dsphere适用于球面类型的地图,它的数据类型是GeoJSON格式的,我们可以在http://geojson.org/地址上查看GeoJSON格式的样式,比如我们描述一个点,...有了数据之后,我们可以通过如下操作来创建地理空间索引了: db.sang_collect.ensureIndex({location:"2dsphere"}) 比如我想查询和深圳这个区域有交集的文档

    1.3K70

    mongodb11天之屠龙宝刀(五)lbs地理位置检索:存储经纬度以及查询

    mongodb11天之屠龙宝刀(五)lbs地理位置检索:存储经纬度以及查询 原文连接:直通车 基本原理 LBS,存储每个地点的经纬度坐标,搜寻附近的地点,建立地理位置索引可提高查询效率。...mongodb地理位置索引,2d和2dsphere,对应平面和球面。 mongodb位置查询文档 实现原理:参考文章 两种索引方式 地理位置索引,必须创建索引才可以能查询,目前有两种索引。...center默认是度,$centerSphere默认距离是弧度 地理位置索引创建与查询 地理位置索引-2d索引 ?...首先需对col里的w设置索引为’2d’,方可进行$near查询 db.location.ensureIndex({w:"2d"}) w对应的经纬度外镶字段 创建了地理位置索引,默认mongoDB...创建完成之后在indexes中出现了新的索引形式即为成功 ?

    64130
    领券