收藏
回答

云数据库where中对象的值包含undefined时,update对应的字段全部数据都会更新

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 微信安卓客户端 wxaa12ca7c67b8beec aqi9472-d8bc4a 1.1.70

云函数index

// 云函数入口文件

const cloud = require('wx-server-sdk')


cloud.init()

const db = cloud.database()

const _ = db.command


exports.main = async (event, context) => {

// console.log('collectionName is :' + event.collectionName)

var whereObjects = event.whereObjects

var updateObjects = event.updateObjects

var collectionName = event.collectionName


console.log(whereObjects)

try {

return await db.collection(collectionName).where(whereObjects)

.update({

data: updateObjects,

})

} catch (e) {

console.log('whereObjects is :' + whereObjects)

console.error(e)

}

}

本地调用函数获取到的whereObjects中获取到的对象的值为undefined时,整个表中相应的字段全部修改


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

1 个回答

  • 龙图腾
    龙图腾
    2020-03-11

    在 try...catch...语句外层加如下语句就OK了

    if (Object.keys(whereObjects).length !==0){ //这个不判断的话会返回{},导致全部数据更新

    }

    2020-03-11
    有用
    回复
登录 后发表内容
问题标签