Реализация функциональности поиска в Prisma / GraphQL - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу реализовать простую функцию поиска с помощью Prisma. Я видел некоторую информацию об использовании предложения where, но он чувствителен к регистру, поэтому это не очень хорошее решение.

Я также видел некоторые учебники, использующиевнешние услуги.Я не хочу использовать какие-либо внешние услуги.Я хотел бы сделать что-то настолько простое, насколько это возможно.

В любом случае, я могу настроить запрос так, чтобы он не учитывал регистр?или любой другой подход, который вы, ребята, рекомендуете?

Спасибо:)

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Вы можете выполнять поисковые запросы, используя призменный клиент.Вот пример автоматически сгенерированного интерфейса для параметра запроса where объекта User в одном из моих приложений.

export interface UserWhereInput {
  name?: String;
  name_not?: String;
  name_in?: String[] | String;
  name_not_in?: String[] | String;
  name_lt?: String;
  name_lte?: String;
  name_gt?: String;
  name_gte?: String;
  name_contains?: String;
  name_not_contains?: String;
  name_starts_with?: String;
  name_not_starts_with?: String;
  name_ends_with?: String;
  name_not_ends_with?: String;
  ...
  AND?: UserWhereInput[] | UserWhereInput;
}

Примечание name_contains и name_starts_with.Оба они действительны для простого поиска, вот пример резольвера -

const userSearchResolver = async (_root, _args, _context) => {
    return await _context.prisma.users({
      where: {
        name_starts_with: _args.searchQuery
      }
    });
  }
);
0 голосов
/ 05 декабря 2018

Эта функция еще не реализована: https://github.com/prisma/prisma/issues/1183

Однако вы можете иметь необработанный доступ к базе данных, если она поддерживает эту функцию: https://www.prisma.io/docs/prisma-graphql-api/reference/raw-database-access-qwe4/#overview

...