在阿里产品中的小程序云serverless中的云数据库数据如何自增1或减1,像腾讯小程序云一样调用db.command.inc(1),可以在该字段自增1,想问问阿里的小程序云是否有这一指令
是否有这一方法,如果没有,那我想要加1,是否必须先从数据库获先取到数据,加1后再写入数据库?是否还有更好的方法?
再文档中并未发现此方法:https://help.aliyun.com/document_detail/196781.html
我的小程序云serverless是旧版的
再云函数中也尝试过:
await ctx.mpserverless.db.collection('birthdayUser').updateOne({
_openid
}, {
$set: {
// remindVal: 12
remindVal: ctx.mpserverless.db.command.inc(1) // 报错,db里面没有command方法
}
})
开发者您好,云数据库底层是基于mongodb实现,因此使用 mongo 的操作符号 $inc 可以完成自增操作,使用哪个命令可以看您的需求,这里以命令 findOneAndUpdate 为例:
首先,我有一张要操作的订单表:
现在,我希望对 name 为 Cheese 的订单,quantity 字段自增 1,云函数代码如下:
module.exports = async (ctx) => { const res = await ctx.mpserverless.db.collection('orders').findOneAndUpdate( { name: "Cheese" }, { $inc: { quantity: 1 } }, { returnNewDocument: true } ) return res};
部署之后,点击运行,得到运行结果如下:
执行结果: {"success":true,"result":{"value":{"date":"2021-03-13T11:21:39.000Z","quantity":17,"size":"small","price":12,"name":"Cheese","_id":"62dfa5caf5cf3ad91d4ba3a0"},"ok":1},"affectedDocs":1}
此时 quantity 字段已经完成自增1了
更多细节请参考 mongo 官方文档 $inc
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。