7***@qq.com
7***@qq.com
  • 发布:2024-12-06 11:16
  • 更新:2024-12-15 21:44
  • 阅读:81

【报Bug】jql如何才能支持事务,2024年现在还不支持吗,不支持的话jql就没法用了,或者 有没有替代方案,让jql支持事务

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

示例代码:

uniCloud.databaseForJQL().startTransaction()
能不能使用,有没有替代方案,让jql支持事务

操作步骤:

uniCloud.databaseForJQL().startTransaction()

预期结果:

支持事务

实际结果:

不支持

bug描述:

jql如何才能支持事务,2024年现在还不支持吗,不支持的话jql就没法用了,或者 有没有替代方案,让jql支持事务

2024-12-06 11:16 负责人:无 分享
已邀请:
风之源

风之源 - 我这么闲给你评论,是因为我的问题还没有人回答~

替代方案就是用传统写法啊,GPT问一下就会了,只学一个事务要不了多少时间

  • 7***@qq.com (作者)

    传统写法是下面的聚合查询


    // 注意JQL内联表查询需要用拼接子查询的方式(let+pipeline)  
    const db = uniCloud.database()
    const dbCmd = db.command
    const $ = dbCmd.aggregate
    db.collection('order')
    .aggregate()
    .lookup({
    from: 'book',
    let: {
    book_id: '$book_id'
    },
    pipeline: $.pipeline()
    .match(dbCmd.expr(
    $.eq(['$_id', '$$book_id'])
    ))
    .project({
    title: true,
    author: true
    })
    .done()
    as: 'book_id'
    })
    .match({
    book_id: {
    title: '三国演义'
    }
    })
    .project({
    book_id: true,
    quantity: true
    })
    .end()

    如果在云函数内还可以使用以下写法
    const db = uniCloud.database()
    const dbCmd = db.command
    const $ = dbCmd.aggregate
    db.collection('order')
    .aggregate()
    .lookup({
    from: 'book',
    localField: 'book_id',
    foreignField: '_id',
    as: 'book_id'
    })
    .match({
    book_id: {
    title: '三国演义'
    }
    })
    .project({
    'book_id.title': true,
    'book_id.author': true,
    quantity: true
    })
    .end()

    事务查询支持 这种的 transaction.collection('account').doc('aaa').get(),多表关联、涉及多行数据的并不支持事务

    2024-12-16 10:17

要回复问题请先登录注册