首页 > 解决方案 > Strapi 在 find() 中使用条件 _in

问题描述

就我而言,我在查找条件中使用event_type_in: filter_by 。现在,如果我们将filter_by数组传递为空,我想返回所有结果,否则只有那些在 filter_by 中传递的结果

searchEvents: async (ctx) => {
    try {
      const {
        title='',
        filter_by=[],
        sort = 'date',
        start = 0,
        limit = 6
      } = ctx.request.body;

      const events = await strapi.services['events'].find({
        title_contains: title,
        event_type_in: filter_by,
        _start: start,
        _limit: limit,
        _sort: sort
      });

      const response = events.map((r) => {
        r = sanitizeEntity(r, { model: strapi.models['events'] });
        delete r.event_type.created_at;
        delete r.event_type.updated_at;
        delete r.event_type.published_at;
        delete r.created_at;
        delete r.updated_at;
        return r;
      });

      ctx.send({ events: response });
    } catch (error) {
      ctx.badRequest(error.message);
    }
  }
}

标签: node.jsstrapi

解决方案


推荐阅读