时间:2021-07-01 10:21:17 帮助过:32人阅读
在移动开发中,经常会用到定位的功能,例如美团、饿了么、猫眼电影等的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做地理空间查询的详细内容,更多请关注Gxl网其它相关文章!