解決MongoDB?位置查詢報(bào)錯(cuò)planner?returned?error:?unable?to?find?index?for?$geoNear?query的問題
MongoDB 位置查詢報(bào)錯(cuò)planner returned error: unable to find index for $geoNear query
執(zhí)行查詢語句,使用 $nearSphere
/** * 1千米 = 0.6213712英里 15千米 = 9.3205679英里 查詢通過除以地球的大約赤道半徑(3963.2英里)將距離轉(zhuǎn)換為弧度。 * ①:如果是第一頁,查詢50公里內(nèi)的老朋友店鋪, * ②:查詢15公里內(nèi)所以的置頂服務(wù)商家,然后根據(jù)分頁參數(shù)來截取 * ③:0.00156785=0.6213712*10/3963.2(所以下列sql查詢的結(jié)果是以經(jīng)緯度[106.653412, 26.696467]為圓心半徑10公里以內(nèi)的所有user信息)
/sql語句
db.getCollection('user').find({ "location": { "$nearSphere": {"$geometry": { "type": "Point", coordinates: [106.653412, 26.696467] },"$maxDistance": 0.00156785 } } })查詢報(bào)錯(cuò) planner returned error: unable to find index for $geoNear query
解決方案
這是因?yàn)楫?dāng)前查詢的是MongoDB的GeoJSON 對(duì)象,查詢中使用了地理空間查詢運(yùn)算符:$nearSphere, 而使用它則需要地理空間索引,而定義為 GeoJSON 點(diǎn)的位置數(shù)據(jù)的索引為2dsphere索引。
故首先創(chuàng)建 2dsphere 類型的索引,如下語句:
//執(zhí)行如下sql,給我user表的位置字段"location"創(chuàng)建 2dsphere 類型的索引
db.user.createIndex({"location":"2dsphere"});添加索引后即可通過上面的位置查詢sql成功查詢出結(jié)果集
mongodb 查詢地理位置報(bào)錯(cuò):planner returned error: unable to find index for $geoNear query‘ on server 1
1.問題描述:mongodb存儲(chǔ)了地理位置
2.出現(xiàn)問題:進(jìn)行地理位置查詢
{"point":?
? {"type": "Point",?
? ? ?"coordinates": [30.443902444762696, -84.27326978424058]},?
? ?"created_on": {"$date": 1398016710168},?
? ?"radius": 180,?
? ?"user": {"$oid": "53543188eebc5c0cc416b77c"},?
? ?"_id": {"$oid": "53544306eebc5c0ecac6cfba"},?
? ?"expires_on": {"$date": 1399831110168}
}3.解決問題流程:
3.1:網(wǎng)上說要建立索引
db.bar.createIndex({point:"2dsphere"});3.2:建立索引提示了哪條數(shù)據(jù)報(bào)錯(cuò),然后將相關(guān)數(shù)據(jù)的儲(chǔ)存地理位置的字段 全部改為 {0,0}
3.3改完之后 ,建立了索引,依舊報(bào)錯(cuò)
3.4刪除之后重新創(chuàng)建索引
db.bar.createIndex({point:"2d"});3.5最終查詢沒有報(bào)錯(cuò)了
創(chuàng)建索引參考:
http://www.dbjr.com.cn/article/197576.htm
到此這篇關(guān)于MongoDB 位置查詢報(bào)錯(cuò) planner returned error: unable to find index for $geoNear query的文章就介紹到這了,更多相關(guān)MongoDB 位置查詢報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- go語言import報(bào)錯(cuò)處理圖文詳解
- Go語言將string解析為time.Time時(shí)兩種常見報(bào)錯(cuò)
- 解決MySQL報(bào)錯(cuò):The last packet sent successfully to the server was 0 milliseconds ago.
- go?mod?tidy報(bào)錯(cuò)解決方法詳解
- go引入自建包名報(bào)錯(cuò):package?XXX?is?not?in?std解決辦法
- goland安裝1.7版本報(bào)錯(cuò)Unpacked?SDK?is?corrupted解決
- Django-Xadmin后臺(tái)首頁添加小組件報(bào)錯(cuò)的解決方案
- Django報(bào)錯(cuò)TemplateDoesNotExist的問題及解決
- 在 SHELL 腳本中調(diào)用另一個(gè) SHELL 腳本的方法(報(bào)錯(cuò): go:not found)
- django報(bào)錯(cuò)設(shè)置auth User的解決
- 解決Oracle?DISTINCT?報(bào)錯(cuò)?inconsistent?datatypes:?expected?-?got?CLOB(數(shù)據(jù)類型不一致:?應(yīng)為?-,?但卻獲得?CLOB)的問題
- Java中報(bào)錯(cuò)org.springframework.jdbc.UncategorizedSQLException的多種解決方法
- 執(zhí)行g(shù)o?build報(bào)錯(cuò)go:?go.mod?file?not?found?in?current?directory?or?any?parent?directory
- Go導(dǎo)入不同目錄下包報(bào)錯(cuò)的解決方法
- 解決MongoDB6.0報(bào)錯(cuò):"mongo"不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件
- maven報(bào)錯(cuò):Failed to execute goal on project問題及解決
- Mongodb啟動(dòng)報(bào)錯(cuò)完美解決方案:about to fork child process,waiting until server is ready for connections.
- golang中package?is?not?in?GOROOT報(bào)錯(cuò)的真正解決辦法
- Go語言報(bào)錯(cuò):'godoc'?不是內(nèi)部或外部命令,也不是可運(yùn)行的程序(godoc無法使用處理)解決方法
相關(guān)文章
MongoDB在Windows平臺(tái)的安裝及配置方法
這篇文章主要介紹了MongoDB在Windows平臺(tái)的安裝及配置方法,簡(jiǎn)單分析了MongoDB的下載、設(shè)置方法、操作命令等具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-04-04
Mongodb 3.2.9開啟用戶權(quán)限認(rèn)證問題的步驟詳解
這篇文章主要給大家介紹了關(guān)于Mongodb 3.2.9開啟用戶權(quán)限認(rèn)證問題的詳細(xì)步驟,通過開啟權(quán)限認(rèn)證,會(huì)對(duì)大家的Mongodb更加保護(hù)的安全些,文中將步驟介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
MongoDB的備份(mongodump)與恢復(fù)(mongorestore)
在使用MongoDB時(shí),數(shù)據(jù)備份與恢復(fù)是非常重要的一環(huán),以防止數(shù)據(jù)丟失或意外刪除,本文就來介紹一下MongoDB的備份(mongodump)與恢復(fù)(mongorestore),感興趣的可以了解一下2023-12-12
使用Locust對(duì)MongoDB進(jìn)行負(fù)載測(cè)試的操作步驟
Locust是一款使用Python開發(fā)的開源性能測(cè)試工具,支持分布式,可在多臺(tái)主機(jī)上對(duì)系統(tǒng)持續(xù)發(fā)送請(qǐng)求,本文給大家介紹了使用Locust對(duì)MongoDB進(jìn)行負(fù)載測(cè)試的操作步驟,文中通過圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
MongoDB入門教程之常用的運(yùn)維技術(shù)介紹
這篇文章主要介紹了MongoDB入門教程之常用的運(yùn)維技術(shù)介紹,講解了安裝部署、狀態(tài)監(jiān)控、安全認(rèn)證、備份和恢復(fù)等內(nèi)容,需要的朋友可以參考下2014-08-08

