微信云函数增删改查

云函数

await db.collection("like").add({
  data: { // 下面是字段名称
    articleId
  },
});

await db.collection("article").doc(articleId).remove();

await db.collection("article")
      .doc(articleId)
      .update({
        data: {
          readNum: _.inc(1),
        },
      });

await cloud
      .database()
      .collection("article")
      .where({
        title: ''
      })
      .get();

模糊查询 + 分页

小程序前端搜索词为空可以查询所有数据
云函数中需要使用如下 regexp: “.*” + title
否则获取不到所有数据

async function list(event) {
  try {
    let { page = 1, limit = 10 } = event;
    let skip = (page - 1) * limit;
    let title = event.title ? event.title : "";
    return await cloud
      .database()
      .collection("article")
      .where({
        title: new db.RegExp({
          regexp: ".*" + title,
          options: "is",
        }),
      })
      .skip(skip)
      .limit(limit)
      .get();
  } catch (error) {
    console.log(error);
  }
}

连表查询

async function footmark(event) {
  try {
    let { page, limit } = event;
    let skip = (page - 1) * limit;
    let data = await db
      .collection("footmark")
      .aggregate()
      .match({  // 相当于 where
        openId: cloud.getWXContext().OPENID,
      })
      .sort({
        updateTime: -1,
      })
      .skip(skip)
      .limit(limit)
      .lookup({
        from: "article", // 要连接的表名
        localField: "articleId", // 当前表要匹配的字段
        foreignField: "_id", // 连接表匹配的字段
        as: "user", // 输出的新字段名称(为数组)
      })
      // 下面两步是把数组转换为对象输出
      .addFields({ // 添加一个新字段
        userInfo: $.arrayElemAt(["$user", 0]),
      })
      .project({
        user: 0, // 删除字段
      })
      .end();
    return data.list;
  } catch (error) {}
}

订阅消息

在这里插入图片描述

config.json

{
  "permissions": {
    "openapi": ["subscribeMessage.send"]
  },
}

index.js

const cloud = require("wx-server-sdk");
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
});

exports.main = async (event, context) => {
  try {
    const { openId, name, content, id, time } = event;
    await cloud.openapi.subscribeMessage.send({
      touser: openId,  // 发送人的 openid
      page: `/pages/articleDetail/articleDetail?id=${id}`,
      lang: "zh_CN",
      data: {  // 上图中的参数
        thing1: {
          value: content,
        },
        thing3: {
          value: name,
        },
        time2: {
          value: time,
        },
      },
      templateId: "2NREbnRpV9MWezQ4Pg785jxQduYz1rG6AU1TFOVdjK0", // 模板 id
      miniprogramState: "formal",
    });
    return {
      errCode: 1,
    };
  } catch (err) {

  }
};

定时任务

文档地址
config.json

{
  "triggers": [
    {
      "name": "myTrigger",
      "type": "timer",
      "config": "0 19 20 * * * *"
    }
  ]
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值