在 GraphQL Query 中使用 like 模糊查询算法

在我们的Web应用中,多数情况下需要按需查询数据,并且可能需要模糊查找。针对这种情况,我们可以使用 GraphQL 查询语言提供的表达式来执行模糊查询。

什么是 GraphQL?

GraphQL是一种用于构建API的查询语言。

GraphQL 查询

GraphQL查询是一种从服务器获取数据的方式,具体地说是在API的端点上使用查询语言。

GraphQL模式

GraphQL模式由类型定义和相应的解析器构成。

GraphQL解析器

GraphQL解析器是GraphQL API中的函数。它接收GraphQL查询作为参数,并返回一个响应。

模糊查询

略微了解一下基于字符串的模糊查询算法。他们在字符串中搜索相关内容时非常有用。

如何执行模糊搜索?

我们使用LIKE表达式和通配符%执行模糊查询。

LIKE是用来指定匹配部分字符串的关键字。我们可以通过将通配符 %附加到字符串的末尾来执行通配符匹配搜索。

例如,LIKE 'abc%'可以匹配所有以abc开头的字符串,如 abc, abcc, abcd, abcd_a 等。

在 GraphQL 中使用 LIKE 查询

GraphQL的基本语法是由类型定义和解析器组成的。因此我们需要在类型定义中添加 LIKE 连接器。

类型定义

---- ----- -
    ------------ ------- ------- ------- ----- -------- ------
-

解析器

------ ------ ----- -- -
    --- ------ - ---------

    -- ------------ -
        ------ - ------------------ -- ---------- --- ------------
    -
    
    -- ------------- -
        ------ - ------------------ -- ----------- --- -------------
    -

    -- ----------- -
        ------ - ------------------ -- ---------- ---- -------------------
    -

    ------ -------
--

在此解析器中,我们通过检查查询中的一些参数来过滤出正确的结果集,其中 like 参数执行了 LIKE 查询。 可以看到,它是在返回结果之前执行的。

示例代码

一个基本的GraphQL请求如下所示:

----- -
    ------------ ------ ------- ------ ----- ------ -
        ------
        ------
    -
-

此查询将使用 titleauthor 过滤查询结果,同时使用 LIKE 查询的like参数来查询foo的匹配项。

当我们执行如上查询时,我们可以得到:

-
  ------- -
    -------- -
        -
            -------- ----------
            --------- -----
        --
        -
            -------- ----------
            --------- -----
        -
    -
  -
-

这里有一个使用LIKE查询的例子。

总结

我们已经扩展了GraphQL查询语言并了解了模糊查询。 通过此文章,您应该能了解GraphQL和模糊查询的工作原理,并可以运用到你的Web应用程序中。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64f82be5f6b2d6eab304d568


猜你喜欢

  • ES12 中如何正确使用 Promise 中的并行执行功能

    ES12 中如何正确使用 Promise 中的并行执行功能 在前端开发中,使用 Promise 对异步代码进行处理不仅能够使代码更加规范,而且还能够提高代码的可读性和可维护性。

    1 年前
  • SASS 中:nth-child 选择器的使用技巧

    SASS 中:nth-child 选择器的使用技巧 在 CSS 中,我们可以使用:nth-child(n)选择器来选择某一个父元素下的第 n 个子元素。该选择器非常常用,SASS 中也支持该选择器的使...

    1 年前
  • 使用 Retrofit 在 Android 中访问 RESTful API

    在 Android 开发中,访问 RESTful API 已经成为了开发中的一个不可或缺的部分。其中,Retrofit 是目前最流行的 RESTful API 访问框架之一,它使用了简单的注解方式,使...

    1 年前
  • Deno 如何进行 HTTPS 配置

    在前端开发过程中,我们经常需要访问一些需要 HTTPS 访问的 API 或网页。而在 Deno 中,如何进行 HTTPS 配置呢?本文将为你详细介绍 Deno 的 HTTPS 配置方式,并提供示例代码...

    1 年前
  • Mocha 测试框架中如何测试正则表达式

    正则表达式是前端开发者经常要用到的技术,因此对于一个好的测试框架来说,测试正则表达式的功能是必须要有的。Mocha 是一个广泛使用的 JavaScript 测试框架,它提供了一系列的方法来测试正则表达...

    1 年前
  • 如何使用 Jest 进行 React Native 测试

    React Native 是越来越受欢迎的移动端开发框架,而 Jest 是一个简单好用的 JavaScript 测试框架。在 React Native 中使用 Jest 进行测试是非常常见的做法,本文...

    1 年前
  • RxJS 引入后卡顿问题的优化

    在前端开发中,RxJS 是一种流式编程库,可以通过 RxJS 来构建复杂的响应式应用程序。然而,使用 RxJS 时,一些开发者可能会遇到一个问题:应用程序在引入 RxJS 之后出现卡顿现象,导致用户体...

    1 年前
  • Express.js 中如何处理 POST 请求参数

    Express.js 是目前非常流行的 Node.js Web 框架之一,它提供了一系列方便快捷的 API 来简化 Web 开发中的各种工作,包括处理 HTTP 请求和响应,路由等。

    1 年前
  • 在 Kubernetes 中使用 Secrets 中的 TLS 证书

    在 Kubernetes 中使用 Secrets 中的 TLS 证书 在现代应用程序中,加密是一项非常重要的安全措施。TLS 证书是一种数字证书,用于加密在网上传输的数据。

    1 年前
  • Tailwind CSS 详解:超详细的快速入门指南

    前言 Tailwind CSS 是一套功能强大而高效的 CSS 框架,可以帮助你更快速、更轻松、更灵活地编写网站或应用程序界面的样式。 在本篇文章中,我们将为大家介绍如何快速入门 Tailwind C...

    1 年前
  • 处理 GraphQL 引用循环的几种方法

    GraphQL 是一种 API 查询语言,它允许我们更简单地构建客户端应用程序。与 RESTful API 不同,GraphQL 的查询是由客户端定义的,这样客户端可以只请求它们需要的数据,而不是所有...

    1 年前
  • 如何实现 Material Design 中无宽度的 App Bar?

    Material Design 中的 App Bar 可以分为有宽度和无宽度两种类型。有宽度的 App Bar 是指有一个固定高度和固定宽度的导航栏,而无宽度的 App Bar 是指没有固定宽度,可以...

    1 年前
  • 用 Enzyme 测试 React 组件时解决 'Invalid Enzyme object' 报错的方法

    用 Enzyme 测试 React 组件时解决 'Invalid Enzyme object' 报错的方法 介绍 Enzyme 是 Facebook 推出的一个 React 组件测试工具,它可以帮助我...

    1 年前
  • Headless CMS 还是 CMS 好?

    在当下互联网时代,内容管理系统(CMS)变得越来越重要,因为它们能够使网站开发者快速创建和管理内容。但是,随着前端技术的发展,一种新型的内容管理系统——Headless CMS也开始流行起来。

    1 年前
  • Hapi 框架中使用 Socket.IO 实现聊天室

    Socket.IO 是一个基于 WebSocket 协议的实时应用程序开发库,它提供了一种实时双向通信的方式,支持实时的事件发布/订阅机制。而 Hapi 是一款流行的 Node.js Web 框架,它...

    1 年前
  • Docker Compose 的基础知识

    Docker Compose 是 Docker 官方推出的一个用于定义和运行多个 Docker 容器的工具,它可以让我们轻松地管理和运行多个 Docker 容器,并将它们组合在一起,从而实现具有复杂依...

    1 年前
  • Fastify 应用中如何实现防抖和节流

    在前端开发中,我们经常需要实现防抖和节流这样的性能优化技术来优化用户体验和系统性能。Fastify 是一个快速和低开销的 Web 框架,本文将介绍如何在 Fastify 应用中实现防抖和节流。

    1 年前
  • 从加速计算到流媒体服务:高性能 Rust 的崛起

    Rust 是一种系统级别的编程语言,因其安全、高性能、内存管理直观等特性而备受前端开发人员的青睐。尤其是在需要处理复杂计算和大量数据处理的场景下,Rust 显得尤为重要。

    1 年前
  • 小技巧:使用 LESS 实现 CSS3 网格背景效果

    在现代网页设计中,网格系统已经成为了前端设计中的重要元素。通过同等间隔的水平与垂直线条,网格系统可以使得整个页面看起来更加整齐、高效。而网格背景效果是一种常用的网格系统,可以帮助设计师轻松地制作出不同...

    1 年前
  • Web Components 如何实现单向数据流?

    Web Components 是 Web 技术中相对新的一种编程模型,它允许开发者以组件化的方式构建复杂的应用程序。而单向数据流则是前端技术中常见的一种模式,它可以帮助我们规避很多状态管理方面的常见问...

    1 年前

相关推荐

    暂无文章