db.command.mul

更新指令。用于指示字段自乘某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:

  • 原子性:多个用户同时写,对数据库来说都是将字段自乘,不会有后来者覆写前者的情况
  • 减少一次网络请求:不需先读再写
    inc 指令同理。

函数签名:

  1. function mul(value: number): Command

示例代码

将一个 todo 的进度乘 2:

  1. const cloud = require('wx-server-sdk')
  2. cloud.init()
  3. const db = cloud.database()
  4. const _ = db.command
  5. exports.main = async (event, context) => {
  6. try {
  7. return await db.collection('todos').doc('todo-id').update({
  8. data: {
  9. progress: _.mul(2)
  10. }
  11. })
  12. } catch(e) {
  13. console.error(e)
  14. }
  15. }

原文: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/command.mul.html