更新数据库一个集合某字段中的值不成功!我要求先查询集合有某条记录否!再判断如果没有就写入新记录!如果有就只更新该记录的count字段的数量查询控制台可以看到!增加就是只在控制台可以看到以前count的值和更新的值!云数据库更新不了更新返回
显示result为null
一下是云函数:
try {
return await db.Collection('shopcart').where({
id: event.id,
rule: event.rule,
useInfo: event.useInfo
}).update({
data: {
count:event.count,
}, });
以下是js代码:
var product = {
id: this.data.detailData._id,
count: this.data.count,
rule: rules.join('/')
};
console.log('product ==> ', product);
//加载提示
wx.showLoading({
title: '加载中...'
})
//查询购物车是否存在当前的商品
wx.cloud.callFunction({
name: 'get_shopcart',
data: {
id: this.data.detailData.id,
rule: rules.join('/')
},
success: res => {
// console.log('成功后输出查询购物车是否存在当前的商品 res ==> ', res);
//如果购物车不存在当前商品,则添加新的数据
if (res.result.data.length == 0) {
this.addProduct(product);
} else {
//修改商品数
product.count = res.result.data[0].count + this.data.count;
this. updateProductCount(product);
}
},
fail: err => {
console.log('出错了 err ==> ', err);
}
})
},
//添加新的商品到购物车
addProduct: function (product) {
wx.cloud.callFunction({
name: 'add_shopcart',
data: product,
success: res => {
//关闭加载提示
wx.hideLoading();
// console.log('添加购物车商品 res ==> ', res);
},
fail: err => {
//关闭加载提示
wx.hideLoading();
console.log('出错了 err => ', err);
}
})
},
//修改购物车商品数量
updateProductCount: function (product) {
wx.cloud.callFunction({
name: 'update_shopcart',
data: product,
success: res => {
//关闭加载提示
wx.hideLoading();
// console.log('修改商品数量成功 res ==> ', res);
},
fail: err => {
//关闭加载提示
wx.hideLoading();
console.log('出错了 err => ', err);
}
})
}
})
以下是控制台显示的结果:
求高手指导!
在云函数中更新数据库集合的语句中,应该使用
db.collection
而不是db.Collection
。请确保在云函数代码中将Collection
修改为小写的collection
。如果控制台显示
result
为null
,可能是因为查询条件没有匹配到任何记录,或者修改的字段值与原记录相同,没有发生实际的更新。您可以在调用云函数后检查查询结果,并确认是否有返回数据。