- 如何用聚合筛选出对象数组中指定值的所有数据?
[图片] [图片] 这是一个商城里面入驻了很多店铺,每个店铺都会上架不同的商品,并把商品存在st_goods这个对象数组中。现在我想的是通过聚合的方法,将所有店铺上架的“休闲娱乐”的商品都给筛选出来,并返回到一个数组中,这个可以实现的吗?
2020-07-25 - 云数据库开发中的事务处理这个例子感觉不对呀,太困惑了,能帮忙看看吗?
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Database.startTransaction.html 如上面的链接提供的例子。这个里边给出的例子是从A用户转10元给B用户,如果用事务的的话,应该是在操作A-10完成,B+10失败的时候才需要进行事务的rollback呀?为啥例子中是查找A,B账号中某一个不存在就进行rollback? 而没有放在A-10,B+10这两个成功与否上?另外,如果try里边的操作如果发生异常(例如:恰巧是A-10操作完成了,而B+10操作抛异常),被catch 捕获到,那么这个时候不应该进行rollback 吗? const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database({ throwOnNotFound: false, }) const _ = db.command exports.main = async (event) => { try { const transaction = await db.startTransaction() const aaaRes = await transaction.collection('account').doc('aaa').get() const bbbRes = await transaction.collection('account').doc('bbb').get() if (aaaRes.data && bbbRes.data) { const updateAAARes = await transaction.collection('account').doc('aaa').update({ data: { amount: _.inc(-10) } }) const updateBBBRes = await transaction.collection('account').doc('bbb').update({ data: { amount: _.inc(10) } }) await transaction.commit() console.log(`transaction succeeded`) return { success: true, aaaAccount: aaaRes.data.amount - 10, } } else { await transaction.rollback() return { success: false, error: `rollback`, rollbackCode: -100, } } } catch (e) { console.error(`transaction error`, e) return { success: false, error: e } } }
2020-07-07 - 云开发 数组遍历与lookup如何结合?
[图片] 需求是这样,我有一个订单表,里面有商品id和购买数量,先在希望通过lookup去扩展这个表,将商品名称、图片一起查出来。 如果单独试用lookup,查出来的结果和原有的goods是两个单独的字段,需要本地for循环2次重新组合,比较麻烦。 我猜测map和lookup是否有更好的组合试用方式,或者有其他的方法可以解决我刚才说的问题。谢谢!
2020-06-08 - lookup联表查询,如何遍历数组,匹配对应的数据?
表1 "_id":"2a0398605f1114*****d69a167ebf9ed" "name":"A_TL" "alistArray":[100,101,200,201] 表二 "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"301" "time":"20-10-10" ------------------------------------------------------ "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"100" "time":"21-10-10" ------------------------------------------------------ "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"200" "time":"20-12-10" ------------------------------------------------------ "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"201" "time":"10-10-10" ------------------------------------------------------ "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"501" "time":"25-10-10" 遍历【表1】里”alistArray“字段里的所有值,联表查询【表2】里的”alistID“相匹配的数据, 实现结果: "_id":"2a0398605f1114*****d69a167ebf9ed" "name":"A_TL" "alistArray":[100,101,200,201] "newlist":[ { "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"100" "time":"21-10-10" }, { "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"200" "time":"20-12-10" }, { "_id":"2a0398605f1114*****d69a167ebf9ed" "alistID":"201" "time":"10-10-10" } ]
2020-07-17