云函数中使用事务怎么在记录中增加_openid字段?
发布于 6 年前 作者 na54 9070 次浏览 来自 问答

云函数中使用事务,在提交的数据中增加_openid字段,但事务提交后_openid字段没有生成。同样的代码,不用事务就可以正常增加_openid字段。有开发者遇到类似问题吗?还有在事务中使用db.serverDate()会报错。

如下是云函数代码:

// 云函数入口函数

exports.main = async (event, context) => {

  const wxContext = cloud.getWXContext()

  try {

    const transaction = await db.startTransaction()

    // generate order record

    let trade_no = ‘ABCD1234’

    let order = {

      _id: trade_no,

      _openid: wxContext.OPENID,

      status: 0,

      create_date: new Date(),

      // create_date: db.serverDate(), // 报错:invalid key offset

    }

    await transaction.collection(‘test’).add({ data: order })

    await transaction.commit()

    console.log(`transaction1 succeeded`)

    return {

      success: true,

   }

 

  } catch (e) {

    console.error(`transaction error`, e)

    return {

      success: false,

    }

  }

}

1 回复

每条记录都有_id 字段用做记录唯一标志,_openid 字段用以标志记录的创建者,即小程序的用户,_openid是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档,开发者可以自定义_id,但不可自定义和修改_openid 。

回到顶部