收藏
回答

云函数updata经纬度坐标的问题?

云函数是这样的:

// 云函数入口文件
const cloud = require('wx-server-sdk')


cloud.init()


const db = cloud.database()
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection(event.collection).where(event.where).update({
      data: event.update
    })
  } catch (e) {
    console.error(e)
  }
}


调用是这样的:

//调用云函数
          wx.cloud.callFunction({
            name'updataothers',
            data: {
              collection'map_customer',
              where: {
                customer: that.data.vOptions.customer
              },
              update: {
                location: new db.Geo.Point(that.data.location.longitude, that.data.location.latitude)
              }
            },
            success: res => {
              //提示
              that.setData({
                customerPositionState'定位成功,请关闭小程序',
                currentDialog'customerPositionState'
              })
            },
            fail: res => {
              //提示
              that.setData({
                customerPositionState'定位失败,请点击 “我的位置” 重新定位',
                currentDialog'customerPositionSuccess'
              })
              console.error
            }
          })


这样会调用失败,查看云函数日志,根本没有被调用。

经过反复测试,如果将update的location改为字符串或其他非坐标的变量,则可以成功updata。唯独updata坐标就不行。


以下data可成功updata:

location: that.data.location.longitude
//或
location: 'test'


求解决方法。谢谢

最后一次编辑于  07-18
回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    07-18
    wx.cloud.callFunction({
      name: 'updataothers',
      data: {
        collection: 'map_customer',
        where: {
          customer: that.data.vOptions.customer
        },
        update: {
          location: {
                 type: "Point",
                 coordinates: [
                     that.data.location.longitude,
                     that.data.location.latitude
                 ]
             }
        }
      },
      ...
    })
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    07-18
    有用 1
    回复
登录 后发表内容
问题标签