亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Mongodb實現查詢地理空間

發布時間:2020-11-10 17:25:16 來源:億速云 閱讀:199 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關如何利用Mongodb實現查詢地理空間,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

MongoDB是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

在移動開發中,經常會用到定位的功能,例如美團、餓了么、貓眼電影等的app,都是使用了移動端定位,然后查找出自己地理位置附近的一些服務、信息。

地理位置索引是MongoDB早已被用戶所熟知的特性,其球面(Spherical)和平面(Flat)兩種模式,提供了豐富的地址位置的表示方式,如2d、2dsphere和GeoJSON等,對于移動App,如地圖軟件、打車軟件、外賣軟件,MongoDB強大的地理位置索引功能使其最佳選擇;此外,對于物聯網、智慧都市等領域,也需要大量的地理位置相關操作,這些都是MongoDB的競技場。

本篇文章將會以Mongodb為數據庫,講述如何在數據庫層級進行定位查詢。

舉個例子,我們需要做一個app,商家可以把自己的商品發布到app上,用戶打開app查看離自己從近到遠的商品。

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

Mongodb有一種地理空間索引,利用它可以進行經緯度的計算,下面繼續介紹如何使用該功能。

下面以Nodejs+mongoose為例

1.創建Schema:

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

2.創建Model

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

3.插入數據

    按照以下數據格式往數據庫插入數據:

  {
   "name":"名字",
   "price":12,
   "location":[經度,緯度]
  }

4.查看用戶附近的數據

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

以上就是如何利用Mongodb實現查詢地理空間,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

什邡市| 安龙县| 新绛县| 兴国县| 门头沟区| 罗定市| 麟游县| 仁寿县| 鄢陵县| 来凤县| 砀山县| 太原市| 奉节县| 敖汉旗| 定日县| 苏州市| 抚宁县| 嘉祥县| 武宣县| 开远市| 海晏县| 海淀区| 桦南县| 郎溪县| 东海县| 平顺县| 呼伦贝尔市| 乌海市| 洮南市| 韶山市| 扬中市| 太原市| 德令哈市| 合作市| 都江堰市| 荣昌县| 鹤壁市| 乾安县| 六枝特区| 平潭县| 会泽县|