// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() const _ = db.command // 云函数入口函数 exports.main = async (event, context) => { const { OPENID } = cloud.getWXContext() if (event.msg_id) { const questions = await db.collection('question') .aggregate() .match({ msg_id: event.msg_id, answer: _.neq('') }) .sort({ rank: 1 }) .skip(event.page_token) .limit(event.page_size) .end() return { list: questions.list, next_page_token: event.page_token + questions.list.length, status: 'OK' } } else if (event.pub_id) { const questions = await db.collection('question') .aggregate() .lookup({ from: 'message', localField: 'msg_id', foreignField: '_id', as: 'message' }) .unwind('$message') .lookup({ from: 'publisher', localField: 'message.pub_id', foreignField: '_id', as: 'message.publisher' }) .unwind('$message.publisher') .match({ 'message.publisher._id': event.pub_id }) .sort({ question_time: -1 }) .skip(event.page_token) .limit(event.page_size) .end() return { list: questions.list, next_page_token: event.page_token + questions.list.length, status: 'OK' } } else { const questions = await db.collection('question') .aggregate() .match({ user_id: OPENID }) .sort({ question_time: -1 }) .skip(event.page_token) .limit(event.page_size) .lookup({ from: 'message', localField: 'msg_id', foreignField: '_id', as: 'message' }) .unwind('$message') .end() return { list: questions.list, next_page_token: event.page_token + questions.list.length, status: 'OK' } } }