云函数使用事务时,遇到的3个问题
发布于 7 年前 作者 ming14 8520 次浏览 来自 问答

1.使用 db.runTransaction 和 db.startTransaction  时,"_openid" 保存不到文档中,其他字段可以。

const transactionResult = await db.runTransaction(async transaction => {

      await transaction.collection(“XYZ”).add({

        data: {

          _openid: openid1,   // _openid 保存不到文档中

 

2.使用 db.runTransaction 和 db.startTransaction  时, db.serverDate() 产生的日期不能正常保存,使用 new Date()产生的日期可以正常保存。

使用db.serverDate() 时,云函数端抛出错误:

{ Error: errCode: -502001 database request fail | errMsg: collection.add:fail [FailedOperation] invalid key in $date object: offset; at collection.add api; 

    at returnAsCloudSDKError (/var/user/node_modules/wx-server-sdk/index.js:6052:16)

    at Object.returnAsFinalCloudSDKError (/var/user/node_modules/wx-server-sdk/index.js:6066:15)

    at Promise (/var/user/node_modules/wx-server-sdk/index.js:1179:32)

    at <anonymous>

    at process._tickCallback (internal/process/next_tick.js:188:7)

     errCode: -502001,

     errMsg: 'collection.add:fail [FailedOperation] invalid key in $date object: offset; at collection.add api; ’ }

 

3.云函数本地调试不支持事务 db.runTransaction(),提示 runTransaction 方法不存在。要想事务正常运行,必须上传到云环境。

2 回复

第一个问题我也遇到了,,我都是通过_openid识别个人的,没了这个字段就搞不了事务了。。

我也遇到 db.serverDate()  报错的问题

回到顶部