- $or 的使用
根据条件过滤文,在开发者工具中使用 $or 无法查到数据,但是在开发者的云开发数据库中使用相同的操作代码可以查到数据 const query = { creator: OPENID, taskType: _.eq('1'), // 任务类型 taskRepeat: _.eq('1'), // 筛选不重复任务 delFlag: _.eq('0'), status: _.in(['0', '1']), //0 未开始 1 进行中 2 已完成 3 已取消 $or: [ // 条件1: 如果查询未开始一定要 startTime 和 endTime 在今天范围内 { status: _.eq('0'), startTime: _.gte(todayStartDateNow).and(_.lte(todayEndDateNow)), }, ], }; // 筛选优先级 if (taskPriority) { query.taskPriority = _.eq(taskPriority); } // 如果是查询重复任务,则不查询时间 if (taskRepeat) { query.taskRepeat = _.neq('1'); delete query.$or; // 移除时间条件,避免冲突 } // 查询定时任务 if (taskTiming) { delete query.$or; query.status = _.eq('0'); query.startTime = _.gte(todayEndDateNow); } // try { // 使用 aggregate 聚合查询2311 const res = await db .collection('task-list') .aggregate() .match(query) .addFields({ isFinish: { $cond: { if: { $eq: ['$finishTime', ''] }, // 判断 finishTime 是否为空 then: 0, // 没有 finishTime else: 1, // 有 finishTime }, }, }) .sort({ isFinish: 1, // isFinish 为 0 的在前面 startTime: 1, // isFinish 为 0 的项按 startTime 排序 finishTime: 1, // isFinish 为 1 的项按 finishTime 排序 }) .project({ isFinish: 0, // 排除辅助字段 }) .lookup({ from: 'task-sub-list', let: { task_list_id: '$_id' }, pipeline: $.pipeline() .match(_.expr($.and([$.eq(['$taskId', '$$task_list_id']), $.eq(['$delFlag', '0'])]))) .addFields({ isFinish: { $cond: { if: { $eq: ['$finishTime', ''] }, then: 0, else: 1, }, }, }) .sort({ isFinish: 1, // isFinish 为 0 的在前面 createTime: 1, // 没有 finishTime 的项按 createTime 排序 finishTime: 1, // 有 finishTime 的项按 finishTime 排序 }) .project({ isFinish: 0, // 排除辅助字段 }) .done(), as: 'taskSubList', }) .end();
08-29 - 如何在小程序内部 引用 cdn的 js 文件已达到减少包体积?
我想在 小程序内部使用 cdn 上的 js 文件,如何来操作呢?有大神给指导下呗
07-22 - 企业微信获取其他微信用户信息?
企业微信如何获取非员工非客户的微信用户信息?目前的场景企微分享给客户,客户转发到群里了,群里的微信用户打开,无法获取到用户信息,请问有什么方法可以查到用户信息吗
2022-06-01