MongoDB——索引类型之地理空间索引(Geospatial Index)

本文介绍了MongoDB的地理空间索引(GeospatialIndex)及其使用方法。通过示例展示了如何创建2dsphere索引,以及如何查询附近商家信息。详细步骤包括数据准备、索引创建和查询操作,帮助读者理解并掌握MongoDB的地理空间查询功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MongoDB官网地址

二、地理空间索引(Geospatial Index)

2.1、地理空间索引(Geospatial Index)的概述

  • MongoDB为地理空间检索提供了非常方便的功能。地理空间索引(2dsphereindex)就是专门用于实现位置检索的一种特殊索引。

2.2、地理空间索引(Geospatial Index)的示例

示例需求:MongoDB实现“查询附近商家"

2.2.1、数据准备
  • 准备数据集,执行脚本

    db.restaurant.insert({
     restaurantId: 0,
     restaurantName:"兰州牛肉面",
     location : {
       type: "Point",
       coordinates: [ -73.97, 40.77 ]
     }
    })
    

    在这里插入图片描述

  • 查看初始化的数据

    > db.restaurant.find()
    

    在这里插入图片描述

2.2.2、创建地理空间索引(Geospatial Index)
  • 创建一个2dsphere索引

    > db.restaurant.createIndex({location : "2dsphere"})
    

    在这里插入图片描述

  • 查看创建的2dsphere索引

    > db.restaurant.getIndexes()
    

    在这里插入图片描述

2.2.3、查询附近10000米商家信息
  • 查询附近10000米商家信息

    db.restaurant.find( {
     location:{
       $near :{
         $geometry :{
           type : "Point" ,
           coordinates : [ -73.88, 40.78 ]
         } ,
         $maxDistance:10000
       }
     }
    } )
    

    在这里插入图片描述

  • 语法解释

    操作符解释
    $near查询操作符,用于实现附近商家的检索,返回数据结果会按距离排序。
    $geometry用于指定一个GeoJSON格式的地理空间对象
    type=Point表示地理坐标点
    coordinates表示用户当前所在的经纬度位置
    $maxDistance限定了最大距离,单位是米
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小志的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值