国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能

這篇具有很好參考價(jià)值的文章主要介紹了prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:我們創(chuàng)建一個集合,添加測試數(shù)據(jù),并執(zhí)行 mongodb 的地理空間查詢,返回需要的數(shù)據(jù)。

1、通過schema.prisma, 創(chuàng)建 store 集合

prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能

2、通過 prisma/client ,插入 幾條測試數(shù)據(jù)
  // 構(gòu)造測試數(shù)據(jù)
  createList: async () => {
    await prisma.store.createMany({
      data: [
        { name: '三里屯MM1', location: { type: 'Point', coordinates: [116.458347, 39.940602] } },
        { name: '西直門GG1', location: { type: 'Point', coordinates: [116.361446, 39.946471] } },
        { name: '東直門MM2', location: { type: 'Point', coordinates: [116.440967, 39.945325] } },
        { name: '天安門MM3', location: { type: 'Point', coordinates: [116.403963, 39.915119] } },
        { name: '三里屯MM4', location: { type: 'Point', coordinates: [116.460054, 39.938063] } },
        { name: '三里屯MM5', location: { type: 'Point', coordinates: [116.461082, 39.944209] } },
        { name: '三里屯MM6', location: { type: 'Point', coordinates: [116.461065, 39.939399] } }

      ]
    })
  },

prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能
location 的數(shù)據(jù)格式為 GeoJSON,即地理位置信息的 JSON 表示法。 這里 type 指定類型為 點(diǎn)坐標(biāo),coordinates:[] 存放經(jīng)緯度數(shù)值 。 經(jīng)度在前,緯度在后。

3、創(chuàng)建地理空間索引

在 prisma 中,使用 $runCommandRaw(),輸入原生數(shù)據(jù)庫命令創(chuàng)建索引:

    // 創(chuàng)建索引
   const createIndexResult = await prisma.$runCommandRaw({
     createIndexes: 'store', // 集合名稱
     indexes: [{
       key: {
         "location": "2dsphere" // 索引字段和索引類型; 索引類型指定為  2dsphere
       },
       name: 'geoIndex' // 索引名稱-自定義
     }]
   })

或者在 mongosh 中執(zhí)行如下創(chuàng)建地理空間索引

db.store.createIndex( { location: "2dsphere" } ) // store 為我們創(chuàng)建的集合名稱

4、運(yùn)行地理空間查詢命令
a、使用$near運(yùn)算符查詢,返回符合條件的數(shù)據(jù)。由近到遠(yuǎn)排序。

prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能

順利查詢出三里屯附近的 MM !
prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能

b、 使用 $genNear進(jìn)行聚合查詢。添加一些條件,并返回距離中心點(diǎn)的具體距離。

使用 prisma 提供的 aggregateRaw 方法,進(jìn)行原生聚合查詢
prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能

distance返回具體距離
prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能

總結(jié):

1、MongoDB 中地理空間數(shù)據(jù)可存儲為 GeoJSON 或者數(shù)組形式[]。如果是經(jīng)緯度,則經(jīng)度在前,緯度在后。
2、在執(zhí)行地理空間查詢前,需先創(chuàng)建索引,推薦索引類型為2dsphere
3、在 prisma 中如果使用的數(shù)據(jù)庫是 mongodb, 在進(jìn)行原生數(shù)據(jù)庫查詢時,可使用 prisma 提供的$runCommandRaw findRaw aggregateRaw 方法

mongoDB地理空間查詢文檔

文章參考自:https://juejin.cn/post/6981814561598865421 鳴謝~文章來源地址http://www.zghlxwxcb.cn/news/detail-499495.html

到了這里,關(guān)于prisma 結(jié)合 mongodb 查詢地理空間坐標(biāo),實(shí)現(xiàn) “附近的人”功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何使用Redis實(shí)現(xiàn)附近商家查詢

    如何使用Redis實(shí)現(xiàn)附近商家查詢

    ????宏夏Coding網(wǎng)站,致力于為編程學(xué)習(xí)者、互聯(lián)網(wǎng)求職者提供最需要的內(nèi)容!網(wǎng)站內(nèi)容包括求職秘籍,葵花寶典(學(xué)習(xí)筆記),資源推薦等內(nèi)容。在線閱讀:https://hongxiac.com???? 在日常生活中,我們經(jīng)常能看見查詢附近商家的功能。 常見的場景有,比如你在點(diǎn)外賣的時候

    2024年02月12日
    瀏覽(23)
  • 基于MongoDB的空間數(shù)據(jù)存儲與查詢

    MongoDB 中使用 GeoJSON對象 或 坐標(biāo)對 描述空間地理數(shù)據(jù)。MongoDB使用 WGS84 參考系進(jìn)行地理空間數(shù)據(jù)查詢。 1、MongoDB支持空間數(shù)據(jù)的存儲,數(shù)據(jù)類型需要限制為GeoJSON; 2、MongoDB可以為GeoJSON類型數(shù)據(jù)建立索引,提升空間查詢的效率; GeoJSON 對象格式 GeoJSON 對象有兩個filed,分別是 ty

    2024年02月11日
    瀏覽(13)
  • 改進(jìn)YOLOv5:結(jié)合位置編碼CoordConv,提升行人目標(biāo)等預(yù)測能力 | 卷積加上坐標(biāo),從而使其具備了空間感知能力

    改進(jìn)YOLOv5:結(jié)合位置編碼CoordConv,提升行人目標(biāo)等預(yù)測能力 | 卷積加上坐標(biāo),從而使其具備了空間感知能力

    眾所周知,深度學(xué)習(xí)里的卷積運(yùn)算是具有平移等變性的,這樣可以在圖像的不同位置共享統(tǒng)一的卷積核參數(shù),但是這樣卷積學(xué)習(xí)過程中是不能感知當(dāng)前特征在圖像中的坐標(biāo)的,論文中的實(shí)驗(yàn)證明如下圖所示。通過該實(shí)驗(yàn),作者證明了傳統(tǒng)卷積在卷積核進(jìn)行局部運(yùn)算時,僅僅能感

    2024年02月02日
    瀏覽(41)
  • 空間坐標(biāo)變換(Python&C++實(shí)現(xiàn))

    空間坐標(biāo)變換(Python&C++實(shí)現(xiàn))

    空間坐標(biāo)變換可看作坐標(biāo)點(diǎn)乘以一個齊次矩陣,其中,齊次矩陣可表示為: 其中: ①區(qū)域的3×3矩陣產(chǎn)生三維圖形的比例、對稱、旋轉(zhuǎn)、錯切等基本變換; ②區(qū)域產(chǎn)生圖形的透視變換; ③區(qū)域產(chǎn)生沿X、Y、Z三個軸的平移變換; ④區(qū)域產(chǎn)生圖形的總比例變換。 平移變換可表示

    2024年02月13日
    瀏覽(17)
  • 【mars3d】Vue3項(xiàng)目集成mard3d實(shí)現(xiàn)gis空間地理系統(tǒng)

    【mars3d】Vue3項(xiàng)目集成mard3d實(shí)現(xiàn)gis空間地理系統(tǒng)

    最近公司的業(yè)務(wù)邏輯需要使用到gis空間地理系統(tǒng),最開始使用的是Cesium.js.涉及東西很多,對新手不是太友好,傳送門: https://cesium.com/platform/cesiumjs/ . 業(yè)務(wù)要使用到很多特效,剛接觸到Cesium,很多效果實(shí)現(xiàn)起來很雞肋,mars3d則很適合新手.文檔與示例也很全,現(xiàn)在記錄一下vue3項(xiàng)目如何集

    2024年02月13日
    瀏覽(25)
  • 【Python&RS】遙感影像的像素坐標(biāo)轉(zhuǎn)地理坐標(biāo)(仿射變換)

    【Python&RS】遙感影像的像素坐標(biāo)轉(zhuǎn)地理坐標(biāo)(仿射變換)

    ? ????????GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協(xié)議下的開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫。它利用抽象數(shù)據(jù)模型來表達(dá)所支持的各種文件格式。它還有一系列命令行工具來進(jìn)行數(shù)據(jù)轉(zhuǎn)換和處理。 ? ? ? ? Python的GDAL庫作為柵格數(shù)據(jù)的處理轉(zhuǎn)換庫,其支持幾百種柵格數(shù)

    2024年02月08日
    瀏覽(17)
  • GIS數(shù)據(jù)漫談(五)— 地理坐標(biāo)系統(tǒng)

    GIS數(shù)據(jù)漫談(五)— 地理坐標(biāo)系統(tǒng)

    地理坐標(biāo)系統(tǒng)(GCS) 地理坐標(biāo)系 通過角度測量單位(Unit)、本初子午線(PRIMEM)和基準(zhǔn)面(DATUM)來進(jìn)行定義。地理坐標(biāo)系下的坐標(biāo)值為 經(jīng)緯度 ,所以有時也叫 經(jīng)緯度坐標(biāo)系 。 CGCS2000 ,2000國家大地坐標(biāo)系。我們很多時候直接用WGS84的坐標(biāo)來代替CGCS2000坐標(biāo)。因?yàn)镃GCS2000的

    2023年04月27日
    瀏覽(19)
  • 一文講清楚地圖地理坐標(biāo)系

    一文講清楚地圖地理坐標(biāo)系

    我最近在做一個和地圖有關(guān)的項(xiàng)目,這里本人地圖采用的是mapbox,其中涉及一個功能需要根據(jù)用戶輸入的地點(diǎn)直接定位到地圖上的對應(yīng)的位置,本人開始想的是直接調(diào)用百度的接口根據(jù)地名直接獲取坐標(biāo),發(fā)現(xiàn)在地圖上的位置有偏移不夠準(zhǔn)確,后面發(fā)現(xiàn)地圖服務(wù)之間有自己的

    2024年02月15日
    瀏覽(22)
  • 【數(shù)理知識】求兩個三維空間點(diǎn)的坐標(biāo)矩陣之間,任意兩兩點(diǎn)之間的空間距離,matlab 實(shí)現(xiàn)

    假設(shè)有兩個包含了三維空間點(diǎn)坐標(biāo)的,三維向量集 A A A 和 B B B ,兩集合中分別有 m m m 個和 n n n 個三維空間坐標(biāo)點(diǎn),可以用矩陣表示為 A = [ a 1 x a 2 x a 3 x ? a m x a 1 y a 2 y a 3 y ? a m y a 1 z a 2 z a 3 z ? a m z ] 3 × m , B = [ b 1 x b 2 x b 3 x ? b n x b 1 y b 2 y b 3 y ? b n y b 1 z b 2 z b 3 z ?

    2024年02月11日
    瀏覽(24)
  • 百度地圖采集經(jīng)緯度坐標(biāo)數(shù)據(jù)定位的javascript實(shí)戰(zhàn)開發(fā)(地理坐標(biāo)拾取系統(tǒng)、地址定位點(diǎn)選插件、實(shí)時定位、數(shù)據(jù)導(dǎo)入、地理編碼、位置糾偏)

    百度地圖采集經(jīng)緯度坐標(biāo)數(shù)據(jù)定位的javascript實(shí)戰(zhàn)開發(fā)(地理坐標(biāo)拾取系統(tǒng)、地址定位點(diǎn)選插件、實(shí)時定位、數(shù)據(jù)導(dǎo)入、地理編碼、位置糾偏)

    在百度地圖的標(biāo)注開發(fā)中,最為關(guān)鍵的操作就是經(jīng)緯度坐標(biāo)信息的拾取。在不同的應(yīng)用場景,坐標(biāo)的拾取方式不同。現(xiàn)就常見的地理坐標(biāo)拾取系統(tǒng)、地址定位點(diǎn)選插件、手機(jī)端GPS實(shí)時定位、數(shù)據(jù)導(dǎo)入、地理編碼、位置糾偏等做全面的介紹。 傳送門:http://api.map.baidu.com/lbsapi/

    2024年02月01日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包