个人案例
- 云开发如何批量更新数据?
之前从数据库中取出20条数据,数据格式例如: ... {name: '张三', 'phone': '110', prize: '0'} ... 修改了其中10条数据的prize更新为不同的数字 {name: '张三', 'phone': '110', prize: '1'},{name: '李四', 'phone': '110', prize: '2'},{name: '王二麻子', 'phone': '110', prize: '3'},{name: '赵四', 'phone': '110', prize: '4'},{name: '钱三', 'phone': '110', prize: '5'},{name: '张三1', 'phone': '110', prize: '6'},{name: '李四1', 'phone': '110', prize: '7'},{name: '王二麻子1', 'phone': '110', prize: '8'},{name: '赵四1', 'phone': '110', prize: '9'},{name: '钱三1', 'phone': '110', prize: '10'}, 我现在是for循环写的, arr.forEach((ele) => { [代码] db.collection([代码][代码]'users'[代码][代码]).where({name: ele.name[代码] [代码]})[代码] [代码] [代码][代码].update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]prize: ele.prize[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码] [代码]});[代码] 可以一次性更新多条数据的写法吗?
2019-11-19 - Only digits (0-9) can be put inside []如何解决?
请问一下,错误:Only digits (0-9) can be put inside [] in the path string,要如何解决?具体如下:我是这样声明的数组[图片],这样赋值的:[图片],但是还是报这样的错误:[图片]赞同回复编辑
2020-03-27 - 云函数更新数据库 反馈 collection.update:ok updated: 0?
Collection.update(): Promise<Object>https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/collection/Collection.update.html 云函数调用 update 反馈 updated: 0; 开发工具,云端测试可以更新成功; 体验版小程序端直接调用反馈 updated: 0 云函数代码 // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database(); const _ = db.command; // 云函数入口函数 exports.main = async (event, context) => { try { const watchAdNumInc = event.weightType == 1 ? 1 : 0;; const shareTimesNumInc = event.weightType > 2 ? 1 : 0;; const inviteNewNumInc = event.weightType == 3 ? 1 : 0; return await db.collection('users').where({ _openid: event.sharePerson }) .update({ data: { watchAdNum: _.inc(watchAdNumInc), shareTimesNum: _.inc(shareTimesNumInc), inviteNewNum: _.inc(inviteNewNumInc) }, }); } catch (e) { console.error(e) } } 小程序端代码 wx.cloud.callFunction({ name: 'updateUserWeight', data: { sharePerson: that.data.share_person_open_id, weightType: weightTypeValue } }).then(res => { console.error('成功'); }).catch(err => { console.error('重失败:', err); }) 云端测试截图 [图片] 小程序体验版截图 [图片] https://developers.weixin.qq.com/community/develop/doc/000e40fc77477895ccb7b28105b400 参考此链接,无法解决问题
2020-07-13 - 云开发,如何获取数据库中的某个数组字段包含某个值的数据总条数呢?
假如数据库某集合中有以下三条数据: { {id:1,tags:['小明','小红','小芳'}, {id:2,tags:['小明','小菲','小李'}, {id:3,tags:['小明','小紫','小芳'}, } 我该如何获取,集合中含有'小芳'的tags数据的总条数?
2019-11-08 - 云函数统计记录集中的记录数时字段名能否用参数表示?
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() exports.main = async (event, context) => { return await db.collection(event.tablename).where({ Value01: event.valueQ //此处的字段名称 Value01 能否用参数来表示 // 填入当前用户 openid }).count() }
2020-06-18 - 如何统计云数据库中字段的频率?
我现在有一个数据库,3行: id:A, have:B; id:B, have:A; id:C, have:A; 我想要返回每个id在字段have出现的频率,所以应该返回: id:A, count_have:2; id:B, count_have:1; id:C, count_have;0 请问应该怎么写这个代码?
2020-07-25 - 【微信小程序】【数据库】【聚合】能否先输出统计数值count,再输出聚合结果?
const res = await db_contract.where({ countrys:event.countrys }).count()//先获取符合结果的数量 e.total = res.total if(e.total!=0){ await db_contract.aggregate() .lookup({ from:'MC_users', localField: 'no', foreignField: 'no', as: 'user', }).match({//匹配结果 reach:false, countrys:event.countrys }).sort({ _id:1 }).//COUNT()这样不行 .skip(event.start) .end() .then(r => {//返回匹配值,数据量大于20 e.list = r.list console.log(r) }) .catch(err =>{ e.errCode = err.errCode console.error(err) }) 这是我现在在用的代码,但是这样有点蠢,我只想要个计数和匹配数组,但是却做了两次查询,有没有什么办法能整合到一起吗?
2020-07-11 - 云函数从一个集合中条件查询随机?
[代码]table: {[代码][代码] [代码][代码]{[代码][代码] [代码][代码]_id:[代码][代码]123132[代码][代码],[代码][代码] [代码][代码]type:[代码][代码]"type1"[代码][代码] [代码][代码]msg:[代码][代码]""[代码][代码] [代码][代码]},{[代码][代码] [代码][代码]_id:[代码][代码]123154[代码][代码],[代码][代码] [代码][代码]type:[代码][代码]"type1"[代码][代码] [代码][代码]msg:[代码][代码]""[代码][代码] [代码][代码]},{[代码][代码] [代码][代码]_id:[代码][代码]123113[代码][代码],[代码][代码] [代码][代码]type:[代码][代码]"type2"[代码][代码] [代码][代码]msg:[代码][代码]""[代码][代码] [代码][代码]},{[代码][代码] [代码][代码]_id:[代码][代码]123134[代码][代码],[代码][代码] [代码][代码]type:[代码][代码]"type2"[代码][代码] [代码][代码]msg:[代码][代码]""[代码][代码] [代码][代码]}[代码][代码]}[代码]例如数据表结构如上,想要同时(一条查询语句)查询type="type1"的随机一条记录和type="type2"的随机一条记录,分开两次查询已经学会了。如果要一次查询出来应该怎么写呢?
2019-11-03 - aggregate中如何使用外部变量?
if(member != 0){ const projectList = db.collection('projects').aggregate() .lookup({ from: "user", localField: "displayuser", foreignField: "userId", as: "uid" }) .replaceRoot({ newRoot: $.mergeObjects([ $.arrayElemAt(['$uid', 0]), '$$ROOT' ]) }) .project({ uid: 0 }) .match(_.expr($.and([ $.gte(['$level',member]), ]))) 这个aggregate中使用了member这个变量,member是冲小程序端传过来的参数,确认有数值,可是执行这段代码时却返回为空。当我把member修改为2时能够正确输出,请问大神问题出在哪儿?
2020-08-16 - db.RegExp如何用在多字段or操作里?
看文档里说明db.RegExp不支持用在db.command里,但目前我的需求是,在match阶段,针对3个字段or操作,正则匹配一个关键词,应该如何写? 报错如下: [代码]errMsg: [FailedOperation] (Location15983) An object representing an expression must have exactly one field: { $regex: [代码][代码]"关键词"[代码][代码], $options: [代码][代码]"i"[代码] [代码]}; ; at cloud.callFunction api[代码] 我大致的需求是这样的: [代码]const reg = [代码][代码]new[代码] [代码]db.RegExp({[代码][代码] [代码][代码]regexp: [代码][代码]'关键词'[代码][代码],[代码][代码] [代码][代码]options: [代码][代码]'i'[代码][代码],[代码][代码] [代码][代码]})[代码] [代码]...[代码][代码].match(_.expr([代码][代码] [代码][代码]$.or([[代码][代码] [代码][代码]$.eq([[代码][代码]'$nickName'[代码][代码], reg]),[代码][代码] [代码][代码]$.eq([[代码][代码]'$deliverInfo.userName'[代码][代码], reg]),[代码][代码] [代码][代码]$.eq([[代码][代码]'$deliverInfo.telNumber'[代码][代码], reg])[代码][代码] [代码][代码]])[代码][代码] [代码][代码]))[代码] 我尝试不用$.or,先匹配一个字段也会报错 [代码]...[代码][代码].match(_.expr([代码][代码] [代码][代码]$.eq([[代码][代码]'$nickName'[代码][代码], reg]),[代码][代码] [代码][代码]))[代码]
2019-11-06