- 服务号订阅通知灰度测试
服务号模板消息能力的设计初衷,旨在帮助开发者实现及时通知,但存在一些问题,如: 1. 部分开发者在用户无预期的情况下,发送与用户无关的信息,对用户造成了骚扰。 2. 模板消息是用户触发后的通知消息,不支持营销类消息,不能满足部分业务需求。 为提升微信用户体验,我们开始灰度测试服务号订阅通知功能。 能力说明 开发者可在服务号图文消息、网页等场景设置订阅功能,用户自主订阅后,开发者可按需求下发一条对应的订阅通知。 [图片] 用户可在图文订阅通知 [图片] 用户可在网页订阅通知 灰度测试计划 服务号订阅通知功能即日上线,已认证的境内主体服务号可前往 MP 后台开通使用,详见说明。 1. 服务号订阅通知灰度测试期自2021年1月27日0:00至4月30日24:00,期间服务号模板消息可正常使用;灰度测试期结束后服务号订阅通知的策略将另行公布,届时以官方信息为准; 2. 开发者使用订阅通知功能时,需遵循运营规范,不可用奖励或其它形式强制用户订阅,不可下发与用户预期不符或违反国家法律法规的内容。具体可参考文档:《微信公众平台运营规范》 微信团队 2021年1月27日
2021-01-29 - 小程序云函数查询数据 排序orderBy 跟 limit均不生效,只是返回表中所有记录?
想实现一个 对 用户积分表,进行查询后筛选排序前4条记录,官方文档中似乎是说 单在小程序端不提供 排序功能,故放在 云函数中进行查询、 排序,并取 前4条符合条件的记录。 数据表设计如下,grade 字段为 number类型,表示年级,具体实现中,是打算查询 1年级中 积分 前4名的 积分记录。 [图片] 云函数查询代码如下,使用了官方手册中能查到的两种方式查询,均不能成功筛选,代码如下 // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init(); const db = cloud.database(); const $ = db.command.aggregate // 云函数入口函数 exports.main = async (event, context) => { try{ //let rank = // await db.collection('rank') // .where({ // grade: 1 // }) // .get({ // success: (res) => { // console.log(res.data); // } // }) return db.collection('rank') .aggregate() .match({ grade: 1 }) .sort({ point: -1 }) .limit(4) .end() } catch (error) { return error; } // return rank; // let rank = await db.collection('rank').aggregate() // .match({ // grade: 1 // }) // .sort({ // point: -1, // }) // .limit(4) // .end(); //console.log(rank); } 疑惑的是,用 where 语句进行筛选时,成功返回了2次,那2次返回值均按 point字段进行了排序,并且 只返回 4条记录。 然而 在后续的编码测试中,两种方式都不能按要求返回 4条记录,也没有 按 point进行排序, 为方便排查原因,已经 将 grade 字段直接 匹配数字1,以排除传参问题。 [图片] 小程序端调用代码如下 [图片] 请问如何正确的实再 上述功能,查询 并返回 指定表 某字段 排序 后的前4条记录,我前面的代码没能实现功能,具体问题出在哪里?
2020-04-24