MongoDB 位置查询报错 planner returned error: unable to find index for $geoNear query
执行查询语句,使用 $nearSphere
/**
* 1千米 = 0.6213712英里 15千米 = 9.3205679英里 查询通过除以地球的大约赤道半径(3963.2英里)将距离转换为弧度。
* ①:如果是第一页,查询50公里内的老朋友店铺,
* ②:查询15公里内所以的置顶服务商家,然后根据分页参数来截取
* ③:0.00156785=0.6213712*10/3963.2(所以下列sql查询的结果是以经纬度[106.653412, 26.696467]为圆心半径10公里以内的所有user信息)
*/
/sql语句
db.getCollection('user').find({ "location": { "$nearSphere": {"$geometry": { "type": "Point", coordinates: [106.653412, 26.696467] },"$maxDistance": 0.00156785 } } })
查询报错 planner returned error: unable to find index for $geoNear query
解决方案
这是因为当前查询的是MongoDB的GeoJSON 对象,查询中使用了地理空间查询运算符:$nearSphere, 而使用它则需要地理空间索引,而定义为 GeoJSON 点的位置数据的索引为2dsphere索引。
故首先创建 2dsphere 类型的索引,如下语句:
//执行如下sql,给我user表的位置字段"location"创建 2dsphere 类型的索引
db.user.createIndex({"location":"2dsphere"});
添加索引后即可通过上面的位置查询sql成功查询出结果集
MongoDB 位置查询报错 planner returned error: unable to find index for $geoNear query的更多相关文章
- MongoDB 聚合查询报错
1.Distinct聚合查询报错 db.users.distinct("uname") db.runCommand({"distinct":"user ...
- MySql 安装报错 :Last Error:Unable to update security. Access denied for user 'root'@'localhost(useing password:YES)
在网上查了一下,其实这个问题很好解决,. try again 然后current password mysql是默认密码为空,不要填,记住不要填就ok了
- MySQL查询报错 ERROR: No query specified
今天1网友,查询报错ERROR: No query specified,随后它发来截图. root case:查询语法错误 \G后面不能再加分号;,由于\G在功能上等同于;,假设加了分号,那么就是;; ...
- myBatis查询报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
myBatis查询报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL se ...
- 安装监控MongoDB的Python安装包时候报错:HTTP Error 403: SSL is required
安装pymongo-2.3.tar.gz,执行命令python setup.py install报错: HTTP Error 403: SSL is required 分析原因:安装需要下载这个dis ...
- MongoDB解压报错gzip: stdin: not in gzip format的解决方法
MongoDB解压报错gzip: stdin: not in gzip format的解决方法 在安装MongoDB时出现如下报错: [root@vm172--- mongodb]# tar -zxv ...
- http报错之return error code:401 unauthorized
http报错之return error code:401 unauthorized 依据HTTP返回码所表示的意思应该是未授权,没有输入账号和password,因此解决方法就直接在HTTP包里面 ...
- hive日志位置(日志定位报错:Failed with exception Unable to move sourcehdfs://namenode/tmp/hive-pmp_bi/h)
Hive中的日志分为两种 1. 系统日志,记录了hive的运行情况,错误状况. 2. Job 日志,记录了Hive 中job的执行的历史过程. 日志查看方法 1,在本地运行机器上 hive日志存储位置 ...
- sql注入--双查询报错注入原理探索
目录 双查询报错注入原理探索 part 1 场景复现 part 2 形成原因 part 3 报错原理 part 4 探索小结 双查询报错注入原理探索 上一篇讲了双查询报错查询注入,后又参考了一些博客, ...
- xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files'
xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files' 1.使用xtrabackup备份MySQL时出现如下报错 ...
随机推荐
- Android 妙用TextView实现左边文字,右边图片
原文: Android 妙用TextView实现左边文字,右边图片 - Stars-One的杂货小窝 有时候,需要文字在左边,右边有个箭头,我个人之前会有两种做法: 使用线性布局来实现 或者使用约束布 ...
- python:导入库、模块失败
一般发生在程序开始部分: from pymodbus.client.sync import ModbusSerialClient from pymodbus.payload import Binary ...
- JVM方法区
JVM方法区 <Java虚拟机规范>中明确说明:"尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩."但对于HotSpo ...
- Linux 设置 VI 快捷键 -- 在多个打开的文件中切换
场景 部署完一系列服务后,想要查看所有服务的 catelina.out 日志: vi $(find /data/http | grep catalina.out | grep -v bak) 这个命令 ...
- DateTime和DateTimeOffset是同胞兄弟吗?
小编在日常开发中,用得最多的时间类型就是DateTime,直到一次偶然的邂逅,让小编遇见了DateTimeOffset.当时小编也是一脸迷茫,因为在小编的C#编程字典里就没出现过DateTimeOff ...
- Abstract Factory 抽象工厂模式简介与 C# 示例【创建型1】【设计模式来了_1】
〇.简介 1.什么是抽象工厂模式? 一句话解释: 提供一个接口,以创建一系列相关或相互依赖的抽象对象,而无需指定它们具体的类.(将一系列抽象类装进接口,一次接口实现,就必须实例化这一系列抽象类) ...
- [mysql]状态检查常用SQL
前言 使用MySQL自身命令获取数据库服务状态. 连接数 -- 最大使用连接数 show status like 'Max_used_connections'; -- 系统配置的最大连接数 show ...
- Ubuntu 安装部署Kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.配置节点的基本环境 五.节点安装doc ...
- 带你读论文丨S&P2019 HOLMES Real-time APT Detection
本文分享自华为云社区<[论文阅读] (09)S&P2019 HOLMES Real-time APT Detection(溯源图)>,作者: eastmount . 摘要 本文提出 ...
- 三维模型OBJ格式轻量化压缩处理的数据质量提升方法分析
三维模型OBJ格式轻量化压缩处理的数据质量提升方法分析 在三维模型的OBJ格式轻量化压缩处理过程中,除了减小文件大小和提高加载速度之外,我们也需要考虑如何提升数据质量.以下是几种常见的方法: 1.优化 ...