技术不行但人小帅 2024-06-23 23:02 采纳率: 59.2%
浏览 5

微信小程序云数据库修改操作的问题

代码如下 ,我想对云数据库中的数据追加一条新的数据如何追加? 我希望是能够追加 而不是覆盖,因为我一次性只能获取20条数据,


        async saveWithTimestamp() {
                // 新增条件检查
                if (this.keyboardValue === "0" || this.keyboardValue === "0.00") {
                    uni.showToast({
                        title: '请填写金额',
                        duration: 1000,
                        icon: "none"
                    });
                } else {
                    let that = this;
                    // 声明并初始化新的 cloud 实例
                    const c1 = new wx.cloud.Cloud({
                        resourceAppid: 'w7e', // 资源方 AppID
                        resourceEnv: 'ren3e', // 资源方环境 ID
                    });
                    await c1.init();
                    const res = await c1.callFunction({
                        name: "guagua_account_userLogin",
                        success(res) {
                            let _useropenId = res.result.event.userInfo.openId;
                            const today = new Date();
                            today.setHours(today.getHours() + 8);
                            // const dateString = today.toISOString().split('T')[0];
                            const dayOfWeek = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'][today.getDay()];
                            const timestamp = today.getTime();
                            const savedData = uni.getStorageSync('saveData') || [];
                            const newData = {
                                expensed: that.keyboardValue,
                                commentValue: that.commentValue, // 确保commentValue已被定义
                                date: that.selectDate,
                                weekday: dayOfWeek,
                                timestamp: timestamp,
                                accountType: that.currentIndex,
                                selectIconsTitle: that.selectIconsTitle,
                                user_openId: _useropenId,
                            };
                            savedData.push(newData);
                            const record = { 
                                record: savedData
                            }
                            that.keyboardValue = "0";
                            uni.setStorageSync('saveData', savedData);
                            c1.database().collection('guagua_account_userAccount_record').where({
                                _openid: _useropenId
                            }).update({
                                data: {
                                    record: c1.command.push(newData),  //这里似乎无法推入?还是代码写错了,不是很熟悉
                                }
                            }).then(res => {
                                console.log(res);
                            })
                            console.log(newData);
                            console.log(savedData)



img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-23 23:02
    关注

    引自免费微信小程序:皆我百晓生

    要解决这个问题,你需要确保在push方法内部正确地处理数据。push方法用于将一个对象添加到数组的末尾。如果你想要插入一个新的对象而不是替换现有对象,你应该使用push方法,而不是update方法。

    以下是修复后的代码示例:

    const newData = {
        // 插入的数据...
    };
    
    await c1.database().collection('guagua_account_userAccount_record').add({ // 使用 add 方法
        data: {
            record: [newData] // 将新数据添加到记录数组的开头
        },
    });
    

    这应该会按照预期工作,并将新数据追加到原始数据列表的顶部。

    注意:这个例子假设你在database()实例上使用了add方法。如果你正在使用push方法,那么可能需要稍作调整,因为这两个方法的行为有所不同。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月23日

悬赏问题

  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错