- 相同代码在云函数里和小程序端调用aggregate.geoNear查询结果不一样?
这个情况跟下面帖子所说情况一模一样: https://developers.weixin.qq.com/community/develop/doc/0006283668cf506ddeea25ae35bc00 我比对了所查询出来的数据_id,确实是一样的代码一样的数据最后得到的distance结果不一样。这应该是个bug吧,请问如何解决? 上面的帖子说云函数得到的distance乘以6378137可以换算为米,而我算了一下应该是乘以6378100.0000000003590937629780538。请问官方对这个问题有没有精确的解决方案?
2021-01-19 - 聚合操作的match阶段,操作符nin后的数组达到100个后开始报错(数组由云数据库_id组成)
相关代码如下: getCustomerInfoWhenReachBottom: function () { let that = this const _ = db.command db.collection('customerInfo') .aggregate() .geoNear({ distanceField: 'distance', // 输出的每个记录中 distance 即是与给定点的距离 spherical: true, near: db.Geo.Point(Number(that.data.longitude), Number(that.data.latitude)), distanceMultiplier: 1 / 1000, //将米换算为千米 key: 'location', // 若只有 location 一个地理位置索引的字段,则不需填 includeLocs: 'location', // 若只有 location 一个是地理位置,则不需填 }) .match({ createTime: _.lt(that.data.refreshTimestamp), distance:_.gte(that.data.currentMaxDistance), _id: _.nin(that.data.customerInfoIdOnScreen) }) .limit(10) .end() .then((data) => { that.data.currentMaxDistance=data.list[data.list.length-1].distance that.setData({ arrayCustomerInfo: that.data.arrayCustomerInfo.concat(data.list) }) for (let index = 0; index <data.list.length; index++) { that.data.customerInfoIdOnScreen.push(data.list[index]._id) } }) }, 其中that.data.customerInfoIdOnScreen是个数组,该数组由云数据库中自动生成的_id组成。 在数组that.data.customerInfoIdOnScreen的长度达到100之前,运行正常,长度达到100后,聚合操作失败。 请问如何解决?
2021-01-16 - 为什么聚合操作的match阶段,操作符nin后的数组达到100个后开始报错?
match阶段相关代码如下: .match({ createTime: _.lt(that.data.refreshTimestamp), distance:_.gte(that.data.currentMaxDistance), _id: _.nin(that.data.customerInfoIdOnScreen) }) 当数组that.data.customerInfoIdOnScreen的长度达到100之前,运行正常,长度达到100后,聚合操作失败。 请问这是什么原因,难道操作符nin对数组长度有要求,还是其他地方错了?
2021-01-15 - Database.serverDate()生成的时间能否精确到毫秒?如何操作?
我想用Database.serverDate()生成一个createTime,用来记录插入数据时间,但是直接调用Database.serverDate()后在数据库生成的是一个精确到秒的date类型数据。请问如何让Database.serverDate()生成的时间精确到毫秒,或者直接生成一个精确到毫秒的时间戳也行。
2021-01-09 - 聚合阶段geoNear使用的是wgs84还是gcj02坐标系?
以官方文档提供的示例代码为例:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.geoNear.html#%E7%A4%BA%E4%BE%8B 要求集合 attractions中的location使用wgs84还是gcj02坐标系? 还有示例代码near: db.Geo.Point(113.3089506, 23.0968251),这个(113.3089506, 23.0968251)是指的wgs84还是gcj02坐标系?
2021-01-08 - 聚合操作时,使用geoNear后获取的distanceField单位是什么呢?如何换算为"公里"呢?
以官方文档提供的示例代码为例:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.geoNear.html#%E7%A4%BA%E4%BE%8B [图片] 红框中获得的这个distance单位是什么呢?如何换算为"公里"呢?
2021-01-07