- 使用位置操作符$失效
我的云函数代码如下: // 返回输入参数 const cloudbase = require('@cloudbase/node-sdk'); const app = cloudbase.init({ env: cloudbase.SYMBOL_CURRENT_ENV, }); const db = app.database(); const collection = db.collection('menuList') const _ = db.command; const $ = _.aggregate; exports.main = async (event, context) => { return new Promise((resolve, reject) => { funcList[event.func](event.params) .then((res) => { resolve(res); }) .catch((err) => { reject(err); }); }); }; const funcList = { saveMenuById: (params) =>{ return collection.where( _.and({'children.pid': params.pId, 'children.id': params.cId}) ) // .get() .update({ data:{ 'children.$.name': params.data.name } }) } }; 入参如下: { "func": "saveMenuById", "params": { "cId": 5, "pId": 3, "data": { "name": "我改了名字哦" } } } 运行这段代码后,数据库变成了这样。 [图片] 如果我把代码改成这样↓: const funcList = { saveMenuById: (params) =>{ return collection.where( _.and({'children.pid': params.pId, 'children.id': params.cId}) ) // .get() //.update({ // data:{ // 'children.$.name': params.data.name // } // }) ==================改了下方位置↓↓============= .update({ 'children.$.name': params.data.name; }) } }; 则结果就会变成这样: [图片] 而且,此时,不管我把cid匹配到4还是7还是18,这段语句永远都只对children的第一个元素进行修改,为什么会这样?怎么解决?
2024-04-26 - 小程序的测试功能怎么找不到了,是我的权限问题吗还是功能被撤销了呢?
我现在需要测试一下自己的小程序,看看它在不同系统上的性能,在网上搜索发现以前有这个测试的按钮,为什么现在找不到了呢。 [图片]
2021-05-13 - 为什么无法开通云开发内容管理功能?
问题是这样的,我点击【内容管理】的 [开通] 按钮,再点击【开通按量付费面板】的 [确定] 按钮,然后就提示了这段信息 [图片] [图片]
2021-05-10 - open-type="getUserInfo"无法正常获取用户信息,也没有跳出弹窗,为啥?
这是wxml <button bindgetuserinfo="loginGetUserInfo" open-type="getUserInfo">获取用户信息</button> 这是js loginGetUserInfo(res){ console.log(res) }, 这是控制台打出的信息 [图片] 为什么只能获取到 nickname和头像了,而且头像也是张空图片,微信昵称是微信用户。开始的时候我还可以正常获取用户昵称名字性别地区的,然后后来突然不知道怎么回事就变成这样了,什么都获取不到
2021-04-02