const db = uniCloud.database();
const dbCmd = db.command
let res = await db.collection('todos').doc('todo-id').update({
style: dbCmd.remove()
})
console.log(res);
- 发布:2024-12-26 11:59
- 更新:2024-12-26 13:48
- 阅读:21
产品分类: uniCloud/支付宝小程序云
示例代码:
操作步骤:
删除数据表'todos'中,id为'todo-id'数据的”style“字段。
连接本地云函数运行可正常删除,连接支付宝云无法删除!
删除数据表'todos'中,id为'todo-id'数据的”style“字段。
连接本地云函数运行可正常删除,连接支付宝云无法删除!
预期结果:
删除”style“字段,返回{updated: 1}
删除”style“字段,返回{updated: 1}
实际结果:
未删除”style“字段,返回{updated: 0}
未删除”style“字段,返回{updated: 0}
bug描述:
最近使用uni-id-pages组件时发现,调用uni-id-co云对象解绑微信接口 uniIdCo.unbindWeixin() 无法解绑微信。
仔细检查发现问题出在:数据库更新操作符删除字段指令remove(),在云端云函数使用时无效。连接本地云函数测试正常。
杨杨得亿 - 这个人很懒,什么都没有留下~
调用云函数
// 假设我们要删除用户记录中的某个字段
const db = uniCloud.database();
// 云函数名称
const removeField = 'removeField';
// 执行删除字段操作
exports.main = async (event, context) => {
const { userId } = event;
try {
await db.collection('users').doc(userId)
.update({
// 使用remove()删除字段
remove: ['fieldToRemove']
});
return {
success: true,
message: '字段删除成功'
};
} catch (err) {
return {
success: false,
message: '字段删除失败',
error: err
};
}
};
云函数的本地代码(/functions/removeField/index.js):
// 云函数入口文件
const cloud = require('wx-server-sdk');
cloud.init();
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext();
// 云函数的具体逻辑
// ...
};
在这个示例中,我们首先在前端指定了要删除的字段名称fieldToRemove,然后在云函数中通过remove()操作符将其从数据库记录中移除。
注意:在实际部署云函数时,需要在/cloudfunctions/removeField/package.json中配置依赖,并在阿里云云开发控制台创建并配置云函数。
qingtong (作者)
感谢回复!
这段代码在支付宝云端云函数是测试过了吗?
我测试的结果是连接本地云函数,使用remove()操作符删除字段正常。使用连接阿里云云函数也正常。
但在支付宝云函数就不行了,无法删除字段。
问题应该不是出在代码上。
希望哪位大神能在支付宝云测试 一下,看能否复现我的问题?
2024-12-26 22:20
风之源
回复 qingtong: 我也遇到这个问题了,但是我的不是返回updated:0,是直接报错invalid update。然后我直接把remove相关的代码屏蔽了
2024-12-27 01:26