1***@qq.com
1***@qq.com
  • 发布:2023-06-20 11:25
  • 更新:2023-07-04 15:24
  • 阅读:797

【报Bug】聚合操作,aggregate().geoNear(),不返回distanceField: 'distance'字段

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

第三方开发者工具版本号: 微信开发者工具1.06.2306020

基础库版本号: 2.32.2

项目创建方式: HBuilderX

示例代码:
const db = uniCloud.database()  
const $ = db.command.aggregate  
let res  
let centerpoint={  
            distanceField: 'distance',  
            spherical: true,  
            near:new db.Geo.Point(obj.centerpoint.longitude, obj.centerpoint.latitude),  
            key: 'point', // 若只有 location 一个地理位置索引的字段,则不需填  
            includeLocs: 'point',   
        }  
res = db.collection('home').aggregate().geoNear(centerpoint).end()

res中无distance字段值返回

操作步骤:

代码示例可复现

预期结果:

显示distanceField字段

实际结果:

聚合操作,aggregate().geoNear(),不返回distanceField: 'distance'字段(之前一直好的)

bug描述:

聚合操作,aggregate().geoNear(),不返回distanceField: 'distance'字段(注:索引已设)

2023-06-20 11:25 负责人:DCloud_uniCloud_WYQ 分享
已邀请:

最佳回复

DCloud

DCloud

HBuilderX 3.8.7.20230703 已修复。

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

腾讯还是阿里,连的本地云函数还是云端云函数

  • 1***@qq.com (作者)

    阿里云,连接本地云函数模式,但是用的是js API操作云数据库,之前一直好的,昨晚突然发现无法进行距离条件筛选,百思不得其解,排查了好久,发现没有返回distance字段,然后怕弄错了,又测试了几遍,的确还是无法返回distance字段

    2023-06-20 17:20

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 是不是代码有改动,我看你返回的数据里面有个location字段,代码里面传的是point字段

    2023-06-21 11:13

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 下面回复附件里截图了,point才是地理位置点

    2023-06-21 11:39

  • 1***@qq.com (作者)

    只有一个地理位置点,本来不准备把key和 includeLocs加上的,担心是这个问题,就加上了,但是还是不返回distance字段

    2023-06-21 11:42

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 再次测试,把同样的方法,复制到云对象中,可以得到distanceField: 'distance'字段的,但是clientDB的js API中就是不返回

    2023-06-21 13:43

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 你说出Bug的情况是在客户端通过clientDB调用数据库?还是什么情况

    2023-06-21 18:01

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 对的,是客户端通过clientDB查询数据库,同样函数方法,复制到 云对象,几乎不做改动,通过云对象的方式,可以返回distanceField: 'distance'字段的,用clientDB不能返回,我现在已改用云对象的方式做查询请求了,但是clientDB这个bug,你们还是早点排查一下吧,不然给用clientDB查询的人,会造成很多时间上浪费,因为之前是好的,中间升级了几次版本,现在突然发现不能用,也花了很多时间才发现是不能返回距离字段,只所以花了很多时间,是因为很难考虑到会有这个问题

    2023-06-22 09:57

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 你好,可以有答案吗!

    2023-06-23 15:16

1***@qq.com

1***@qq.com (作者)


location是存放详细地址信息的

  • DCloud_uniCloud_WYQ

    bug已确认,感谢反馈。可以先加一个query参数绕过这个bug

    2023-06-27 12:10

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 后面match()方法中,需要用到这个distanceField: 'distance'字段用作距离范围内筛选,不懂query参数内是否可直接用这个字段,空了试一下,现在我改用云对象了,不过也要谢谢你认真解决问题!

    2023-06-27 22:27

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 现在线上已经修复了,本地调试的话需要等HBuilderX 3.8.7发版

    2023-06-28 13:07

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 你需要上传schema来触发云端逻辑更新

    2023-06-28 13:08

  • 1***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 收到

    2023-06-28 14:59

要回复问题请先登录注册