收藏
回答

云数据库更新失败?

更新数据库一个集合某字段中的值不成功!我要求先查询集合有某条记录否!再判断如果没有就写入新记录!如果有就只更新该记录的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);

      }

    })

  }



})

以下是控制台显示的结果:

   

求高手指导!

回答关注问题邀请回答
收藏

1 个回答

  • CRMEB
    CRMEB
    2023-08-28

    在云函数中更新数据库集合的语句中,应该使用 db.collection 而不是 db.Collection。请确保在云函数代码中将 Collection 修改为小写的 collection

    如果控制台显示 resultnull,可能是因为查询条件没有匹配到任何记录,或者修改的字段值与原记录相同,没有发生实际的更新。您可以在调用云函数后检查查询结果,并确认是否有返回数据。

    2023-08-28
    有用 1
    回复
登录 后发表内容