- 微信小程序数据库联表查询lookup遇到的问题?
1.需求:数据库里两个集合entryLog和userList,两个集合都有cardNo字段,想把两个集合中cardNo相同的记录关联并输出到小程序端 2.问题,在云函数里看到记录关联了,但在小程序端返回值为空 3.数据集合如下: enrtyLog: { cardNo:"" isNew:true ... } userList: { cardNo:"" nickName:"" ... } 4.代码如下: 云函数 getGuest: // 云函数入口文件 const cloud = require('xxx') cloud.init() const db = cloud.database() // 云函数入口函数 exports.main = async (event, context) => { var $ = db.command.aggregate const _ = db.command db.collection('entryLog').aggregate() .lookup({ from: 'userList', localField: 'cardNo', foreignField: 'cardNo', as: 'cardInfo', }).match({ isNew: true }) .end() .then( res =>{ console.log("getGuest successfully,",res) result(res) } ) .catch(err => console.error(err)) } 小程序端 todayGuest: function() { wx.cloud.callFunction({ name: 'getGuest', complete: res => { console.log('getGuest successfully : ',res) } }) }, 运行后,云函数的日志如下,看起来是运行正常的: getGuest successfully, { "list": [ { "cardNo": "W071701", "date": "2021-07-21", "isNew": true, 。。。 "cardInfo": [ { "nickName": "xxx", "cardNo": "W071701", 。。。 } ] }, 但在小程序端却没有返回值: getGuest successfully : {errMsg: "cloud.callFunction:ok", result: null, requestID: "xxx"} 5.另外,还有个问题,在云函数里用了project,想从userList中只取部分字段,但下面的代码没用: .project({ cardNo:1, nickName:1, })
2021-07-21 - 云函数定时触发器的问题?
想每天定时刷新数据库,于是写了个云函数,给这个云函数加了定时触发器 然后郁闷的事来了,用定时触发这个云函数,只能刷新数据库里的前一两条记录;而自己手动执行这条云函数,却可以刷新整个数据库 难道定时触发器还有执行时间限制吗?比如只能执行一秒钟,然后就强制退出? 定时触发器的config.json如下: { "triggers": [ { "name": "myTrigger", "type": "timer", "config": "0 0 5 * * * *" } ], "permissions": { "openapi": [ ] } }
2021-06-18 - 小程序云函数中如何判断数组中的一个元素为{} ?
updateInfo是个对象数组,初始值为{},然后根据不同条件赋予不同的对象值。 赋值后需要对数组中的每个元素判断是否为{}。 在本地可以用if(JSON.stringify(updatedInfo[i])!="{}")来判断 可做成云函数后就不行了,加了下面几个条件也不行:if((JSON.stringify(updatedInfo[i])!="{}")&&(updatedInfo[i]!="undefined")&&(updatedInfo[i]!=null)) 恳请高手指点 代码大概如下: var updatedInfo=[] for(let i=0;i<cardInfo.length;i++){ updatedInfo[i]={} if(条件A){updatedInfo[i].A=A} if(条件B){updatedInfo[i].B=B} ... } if((JSON.stringify(updatedInfo[i])!="{}")&&(updatedInfo[i]!="undefined")&&(updatedInfo[i]!=null)) {...}
2021-06-17 - 数组1给数组2赋值后,用unshift更改数组2后,数组1也增加了同样的元素?
代码如下: var shops2=[1,2,3] var shops1=shops2 shops1.unshift("所有门店") console.log("shops2:",shops2,"shops1:",shops1) 输出结果如下: shops2: (4) ["所有门店", 1, 2, 3],shops1: (4) ["所有门店", 1, 2, 3]
2021-06-11 - 云数据库安全规则问题?
数据库中有两个集合:adminList { "_id":str, "isAdmin":boolean, "managerOfShop":[], "_openid":{openid}, "admin":{openid} } draftUserInfo {"_id":str," _openid":{openid}, "cardNo":str, "isNew":boolean, "nickName":str, "phoneNo":str, "shops":[] } 2.想实现对draftUserInfo的访问规则为:只有集合admin里的管理员(根据isAdmin或者admin字段判断)可读 3.对draftUserInfo设了下面两个安全规则都不生效,读不出数据 { "read": "auth.openid==get('database.adminList.${doc._id}').admin", "write": "doc._openid == auth.openid" } 设下面规则时,还必须加上"==true",否则报错 { "read": "get('database.adminList.${auth.openid}').isAdmin==true", "write": "doc._openid == auth.openid" } 折腾了一天也不知道怎么回事,请各位指点迷津,多谢了 代码片段 db.collection('draftUserInfo').where({ _openid:openid,isNew:true }).get({ success: function(res) { var ui=res.data that.setData({ userInfo:ui })
2021-05-16 - 小程序怎么关注公众号?在微信开发工具的“设置“下面找不到”关注公众号“选项
小程序怎么关注公众号?在微信开发工具的“设置“下面找不到”关注公众号“选项 版本是:1.02.2004102 [图片]
2020-04-13