微信小程序,查询云数据库
当位置信息空时候正常返回结果,有位置信息就返回空值,没有报错。
位置信息打印没有问题,数据库里的gps是geo格式的,添加数据没有问题,访问就不能了。我的云函数查询有语法问题吗?
ChatGpt没能解决,有劳大家。
```javascript
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
const db = cloud.database()
const MAX_DISTANCE = 5000000 // 5000km in meters
// 云函数入口函数
exports.main = async (event, context) => {
const { category, keyword } = event
const dis=Number(event.distance)
const latitude=Number(event.lat)
const longitude=Number(event.lng)
let where = {}
if (latitude && longitude) {
const point = new db.Geo.Point(longitude, latitude)
where.gps = db.command.geoNear({
geometry: point,
maxDistance: dis || MAX_DISTANCE,
})
}
if (category) {
where.index = category
}
if (keyword) {
where.Content = db.RegExp({
regexp: keyword,
options: 'i',
})
}
try {
const { data } = await db
.collection('mydb')
.where(where)
.orderBy('gps', 'asc')
.get()
return data
} catch (err) {
console.error(err)
return []
}
}
// 用户点击搜索按钮
onSearch: function () {
const categoryIndex = this.data.categoryIndex
const distance = Number(this.data.distance)
const keyword = this.data.keyword
const lat = Number(this.data.location.latitude)
const lng = Number(this.data.location.longitude)
const selectedCity = this.data.selectedCity
console.log(lat); //试打印
// 请求搜索结果
wx.cloud.callFunction({
name: 'search',
data: {
category: categoryIndex,
keyword: keyword,
distance: distance,
// selectedCity: selectedCity,
lat: lat,
lng: lng
},
success: res => {
this.setData({
searchResults: res.result
})
console.log('search results:', res.result)
},
fail: err => {
console.error('search error:', err)
}
})
},
```
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据你提供的代码,你的云函数查询语法看起来没有问题。如果返回空值的话,可能有以下几种情况:
在这种情况下,建议你检查以下几个方面:
希望以上建议能够帮助你找到问题所在,如果还有其他问题,请随时提问。