• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何用Mongodb做地理空间查询

php 搞代码 3年前 (2022-01-22) 10次浏览 已收录 0个评论

Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较

本文来*源gaodai^.ma#com搞#代!码网
搞gaodaima代码

热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。

在移动开发中,经常会用到定位的功能,例如美团、饿了么、猫眼电影等的app,都是使用了移动端定位,然后查找出自己地理位置附近的一些服务、信息。

所以本篇文章将会以Mongodb为数据库,讲述如何在数据库层级进行定位查询。

分析

举个例子,我们需要做一个app,商家可以把自己的商品发布到app上,用户打开app查看离自己从近到远的商品。

如果没有地理位置的需求,那好办,直接插库然后查库就ok了,但是如果用到了地理位置,则需要用到Mongodb的一些位置功能。

Mongodb有一种地理空间索引,利用它可以进行经纬度的计算,下面继续介绍如何使用该功能。

实现

下面以Nodejs+mongoose为例

创建Schema:

const mongoose = require( 'mongoose' );let goodsSchema = new mongoose.Schema( { name: String, price: Number, location: {     type: [ Number ],     index: {         type: '2dsphere',         sparse: true     } }}, { collection: 'Goods'} )

创建Model

let goodsModel = mongoose.model(‘Goods’, goodsSchema)

插入数据

按照以下数据格式往数据库插入数据:

{ "name":"名字", "price":12, "location":[经度,纬度]}

查看用户附近的数据

goodsModel.find( {     'location': {         $nearSphere: [             parseFloat( 经度 ),             parseFloat( 纬度 )         ],         $maxDistance: 1000     } } ).limit(10).skip(0).lean().exec();

以上内容就是和大家分享了位置索引的用法,十分实用的一个功能,希望大家学以致用。

相关推荐:

如何使数据库索引的使用效率更高?

查看MySQL数据表的索引方法

什么是mongoDB数据库

以上就是如何用Mongodb做地理空间查询的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何用Mongodb做地理空间查询

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址