// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() const _ = db.command const $ = db.command.aggregate // 云函数入口函数 exports.main = async (event, context) => { const { OPENID } = cloud.getWXContext() if (event.manager) { const managers = await db.collection('manager') .aggregate() .match({ user_id: OPENID }) .skip(event.page_token) .limit(event.page_size) .lookup({ from: 'publisher', localField: 'pub_id', foreignField: '_id', as: 'publisher' }) .unwind('$publisher') .end() return { list: managers.list, next_page_token: event.page_token + managers.list.length, status: 'OK' } } else if (event.follow) { const publishers = await db.collection('publisher') .aggregate() .lookup({ from: 'follow', let: { pub_id: '$_id' }, pipeline: $.pipeline() .match(_.expr($.and([ $.eq(['$user_id', OPENID]), $.eq(['$pub_id', '$$pub_id']) ]))) .project({ _id: 0, follow_time: 1 }).done(), as: 'follow' }) .unwind('$follow') .skip(event.page_token) .limit(event.page_size) .end() return { list: publishers.list, next_page_token: event.page_token + publishers.list.length, status: 'OK' } } else { const publishers = await db.collection('publisher') .aggregate() .skip(event.page_token) .limit(event.page_size) .end() return { list: publishers.list, next_page_token: event.page_token + publishers.list.length, status: 'OK' } } }