Ответ 1
Короткий ответ: вы этого не делаете.
Более длинный ответ заключается в том, что вы должны сами написать этот код. GraphQL не является языком запросов к базе данных, например SQL, это язык запросов приложения. Это означает, что GraphQL не позволит вам писать произвольные запросы из коробки. Он будет поддерживать только типы запросов, определенных в вашей схеме GraphQL.
Если вы хотите написать запрос, содержащий like
, вы должны
a) объявить, что в схеме и б) написать функцию разрешения, которая извлекает данные
Например, у вас может быть эта схема:
type Query {
users(firstName: String!): [User]
}
type User {
firstName: String
lastName: String
}
Вам нужно будет определить следующую функцию разрешения для поля users
:
{
Query: {
users(root, args){
return sql.raw('SELECT * FROM `users` WHERE `firstName` LIKE ?', args.firstName);
}
}
}
И, наконец, напишите этот запрос, чтобы получить список firstName и lastName всех пользователей, которые соответствуют вашим критериям поиска:
{
users(firstName: 'jason%'){
firstName
lastName
}
}
Вот сообщение, которое я написал некоторое время назад, которое разъясняет некоторые концепции вокруг GraphQL: https://medium.com/apollo-stack/how-do-i-graphql-2fcabfc94a01
И здесь сообщение, объясняющее взаимодействие между схемами GraphQL и функциями разрешения: https://medium.com/apollo-stack/graphql-explained-5844742f195e