一、添加索引
想要查询地理位置的字段一定要先在对应的字段在云数据库对应的表中的索引管理添加索引(其实官方文档有说明,但是刚开始接触的话一般都容易忽视)


二、使用geoNear容易遇到的坑
1、geoNear只能放在最外层,也就是不能嵌套在比如_or里面,否则会报错,这样就没办法进行or查询

2、geoNear不可以在一个where里面有两个及以上同时存在,只能有一个geoNear,否则会报错

以上这两个问题,我发现在官方文档也没有明确说明怎么解决,只是给个错误码,而且百度也找不到,导致想要实现复杂的地理位置查询就实现不了。
不过解决办法总是有的。
解决方案:摈弃geoNear,使用geoWithin。
我发现其实使用geoWithin的给定圆的方法和geoNear是差不多的,但是geoWithin使用起来就不会有以上那些问题,这样就可以实现复杂的地理位置查询了😃
本文介绍了一种在云数据库中优化地理位置查询的方法,通过放弃使用限制较多的geoNear,转而采用更灵活的geoWithin,解决了复杂地理位置查询的难题。

被折叠的 条评论
为什么被折叠?



