使用monogodb的¥geonear出现"more than one 2d index, not sure which to run geoNear on\

这个问题很简单的,通过错误信息可以看到是没法确定选择那个地理位置索引。所以解决方案就是指定要用的那个地理位置索引或者将其他的地理位置索引删除,只留下一个地理位置索引。
解决方法:集合名(places)
1.通过:db.places.getIndexes()查看现阶段的索引,看看是不是不小心建立了多个地理位置的索引。
2.如果有多个就通过命令:
如,删除集合places中名为"name_1_domain_-1"的索引:

db.places.dropIndex(“name_1_domain_-1”)
{ “nIndexesWas” : 2, “ok” : 1 }

这样就可以解决了,如果是有多个索引要指定具体那个作业地理位置索引就要通过指定了,具体参考这个把:https://docs.mongodb.com/manual/reference/operator/aggregation/geoNear/
反正我是没遇到但是问题根源坑定是多个地理位置索引。
注意:我是为了让他显示距离中心最近的文档索引直接用了上面地址中的例子,但是没有成功,最后按照提示把location设置为了索引并且是2dsphere的,就设成这个把设成2d又出现了许多问题。,
比如说:{ errmsg: “exception: ‘near’ field must be point”, code: 17304, ok: 0.0 }"
气死了,最后就根据它的例子做好了。这个问题最后就是说他设置的索引是2d但是文档中的坐标不是符合2d的这种格式。如果使用2dsphere索引,则可以将该点指定为GeoJSON点或传统坐标对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值