GqlQuery 类

2023-11-13

http://wapbaike.baidu.com/view/8965981.htm?uid=D0604A052A48B0F5013EC29A99F19073&bd_page_type=1&st=3&step=2&net=0&ldr=0

概述

GQL 是一种类似于 SQL 的查询语言,适用于查询 App Engine 数据库。有关 GQL 语法和功能的完整讨论,请参阅 GQL 参考。

GqlQuery 构造构造函数采用以 SELECT * FROM model-name 开头的完整 GQL 语句作为参数。WHERE 子句中的值可以是字符串或数字字母,或可以使用值的参数绑定。绑定参数最初可以使用位置或关键字参数绑定到构造函数。

query =GqlQuery("SELECT * FROM Song WHERE composer = 'Lennon, John'")

query =GqlQuery("SELECT * FROM Song WHERE composer = :1","Lennon, John")

query =GqlQuery("SELECT * FROM Song WHERE composer = :composer",composer="Lennon, John")为了方便起见,Model 和 Expando 类有种可返回 GqlQuery 实例的 gql() 方法。这种方法在不使用 SELECT * FROM model-name 的情况下采用 GQL 查询字符串,这是暗含的。

query =Song.gql("WHERE composer = 'Lennon, John'")与使用 Query 类一样,应用程序通过调用 fetch() 方法或通过将 GqlQuery 对象视为可迭代来执行查询和访问结果。有关详细信息,请参阅 Query 文档。

Query 和 GqlQuery 访问结果的方式之间有一个不同之处:如果 GQL 查询包括一个 LIMIT 子句或一个 OFFSET 子句,将采用等效 fetch() 方法检索结果,即使迭代器接口用于访问结果也是如此。当某个 GqlQuery(其 GQL 包含 LIMIT 或 OFFSET)被作为可迭代使用时,将对数据库进行一次调用以抓取所有结果,然后迭代器从内存返回每个结果。

forsong inq:

printsong.title另请参阅 Query,一种使用对象和方法而不是 GQL 来准备查询的 Query 类。

注意:支持数据库查询的基于索引的数据结构和算法不支持某些种类的查询。有关详细信息,请参阅查询和索引:对查询的限制。

构造函数

GqlQuery 类的构造函数如下定义:

class GqlQuery(query_string, *args, **kwds)使用 App Engine 查询语言 GQL 的 Query 对象。

参数:

query_string以 SELECT * FROM model-name 开头的完整 GQL 语句。*args位置参数绑定。**kwds关键字参数绑定。

实例方法

GqlQuery 实例有以下方法:

bind(*args, **kwds)重新绑定参数以进行查询。新查询将在重新绑定参数后第一次访问结果时执行。

重复使用带有新参数的 GqlQuery 对象比构建新的 GqlQuery 对象更快,因为重新绑定不需要再次解析查询字符串。

参数:

*args新位置参数绑定。**kwds新关键字参数绑定。get()执行查询,然后返回第一个结果,或如果查询没有返回结果则返回 None。

get() 暗含 [limit] 为 1,并覆盖 GQL 查询的 LIMIT 子句(如果有)。最多从数据库中抓取 1 个结果。

fetch(limit, offset=0)执行查询,然后返回结果。

limit 和 offset 参数控制从数据库抓取的结果数量,以及通过 fetch() 方法返回的结果数量:

数据库会抓取 offset + limit 个结果到应用程序。数据库本身不会跳过前 offset 个结果。

fetch() 方法则会跳过前 offset 个结果,然后返回剩余结果(limit 个结果)。

该查询具有与 offset 加 limit 数量之和成线性对应关系的性能特征。

注意:fetch() 返回最多 1000 个结果。如果有超过 1000 个实体与查询相匹配,且并未指定任何限制或使用了大于 1000 的限制,则 fetch() 仅返回前 1000 个结果。

参数:

limit要返回的结果的数量。该值覆盖 CQL 查询语句中的 LIMIT 子句(如果有)。如果没有足够的符合条件的可用结果,则可能被返回少于 limit 的结果。

limit 是必需参数。当结果数未知时,可迭代地使用 GqlQuery 对象而不是使用 fetch() 方法从查询获取每个结果。

offset要跳过的结果的数量。该值覆盖 CQL 查询语句中的 OFFSET 子句或 LIMIT 子句中的偏移(如果有)。返回值是一个 Model 实例列表,可能是一个空列表。

count(limit)返回该查询抓取的结果的数量。

count() 比通过常量系数检索所有数据要快一些,但是运行时间仍随结果集大小而增加。如果预期的数量很少,或指定了一个 limit,那么,最好只使用 count()。

注意:count() 返回的最大值为 1000。如果与查询条件相匹配的实体的实际数量超出了最大值,count() 会只返回 1000 个结果。

参数:

limit要计数的结果的最大数量。该值覆盖 CQL 查询语句中的 LIMIT 子句(如果有)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GqlQuery 类 的相关文章

  • 常用git和repo命令

    Repo介绍 AOSP代码管理 常用git和repo命令 repo 工具使用手册 repo和Git的关系 自动同步直到完成的脚本 bin bash filename fetch src sh author counsellors i 0 s

随机推荐

  • Java Web数据库篇之漫谈MySQL锁

    Java Web系列文章汇总贴 Java Web知识总结汇总 1 锁分类 1 1 悲观锁 释义 就是很悲观 每次去拿数据的时候都认为别人会修改 所以每次在拿数据的时候都会上锁 这样别人想拿这个数据就会block直到它拿到锁 传统的关系型数据
  • Web容器与Servlet、客户端与服务器请求的建立

    Web服务器与Web应用层属于不容两个范畴 为了让他们两写作 首先应用中介方当制定 Web 应用与Web 服务器进行协作的标准接口 Servlet 就是其中一个主要的协议 接口 Web应用与Web服务器进行协作的一系列标准Java接口 统称
  • LSTM程序输入数据转化

    为了便于大家快速上手LSTM 这里给出简单的MATLAB转换程序 仅供参考 data readmatrix original data xlsx 原始数据 label readmatrix fault labels xlsx 分类标签 4个
  • 数字化转型思考

    数字化转型 数字化转型 新的改变 数字化转型 2022年我开始负责公司管理信息系统 人财物等 的建设和运营 这让我有机会参与数字化的相关实践 2023年公司工作会开完后 自己对今年的数字化工作也做了初步思考 共分为五大部分 1 组织变革 构
  • 点云配准(一)— ICP方法

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 点云配准本质上是将点
  • 常见git提交规范

    type 本次提交的类型 feat 添加新特性 fix bug修复 doc 修改文档 style 代码风格调整 换行 缩进 空格等 不包含任何代码逻辑变化 refactor 代码重构 没有增加任何新功能 没有修复任何bug perf 性能方
  • 使用libwebsocket搭建websocket服务器实例

    webcomm与前端的通讯 websocket服务器操作流程 include
  • 基于Netty和Kafka的物联网数据采集系统

    Netty 的 Reactor 线程模型 目前高性能网络通信服务大多是基于 epoll 机制和多线程模型组合的实现 而 Netty 可依据用户自定义的程序启动参数调整其运行期间的线程模型 Netty 官方推荐使用主从 Reactor 多线程
  • Embedding-based Retrieval in Facebook Search 文献翻译

    Embedding based Retrieval in Facebook Search 摘要 在 Facebook 等社交网络中进行搜索与经典网络搜索相比面临不同的挑战 除了查询文本之外 考虑搜索者的上下文以提供相关结果也很重要 他们的社
  • PHP模版语法支持vue,Vue.js中关于常用模板语法的具体介绍

    本篇文章主要介绍了Vue js学习笔记之常用模板语法详解 小编觉得挺不错的 现在分享给大家 也给大家做个参考 一起跟随小编过来看看吧 本文介绍了Vue js 常用模板语法 分享给大家 具体如下 一 文本渲染 Vue支持动态渲染文本 即在修改
  • 深度学习模型部署学习四

    在 PyTorch 中支持更多 ONNX 算子 学习链接 模型部署入门教程 四 在 PyTorch 中支持更多 ONNX 算子 写在前面 本文档为学习上述链接的相关记录 基本内容一致 仅用于学习用途 若侵权请联系我删除 在 PyTorch
  • 视频文件转gif图片Movie To GIF使用

    系列文章目录 前言 在写博客的时候 如果你想把视频文件上传到网页上怎么办 可能有些网页只支持gif文件格式上传 无法直接上传wmv MP4 等视频格式 怎么办 百度上搜索的视频转gif格式工具 要么是要收费的 要么就是有时间后者视频大小限制
  • 印能捷服务器中文字显示方块,修改Preps中文标记字体解决PJTF/JDF无法导入印能捷问题...

    修改Preps中文标记字体解决PJTF JDF无法导入印能捷问题 书法字体2014 04 11AdobeHeitiStd Regular Preps是大家最常用的印刷拼大版软件 特别是配合印能捷流程出版十分方便 不过 preps的标记如果采
  • THE、QS等四大世界大学排名对比 计算机专业究竟哪家强?

    泰晤士高等教育世界大学排名 QS世界大学排名 USNews世界大学排名 上海软科世界大学学术排名是公认的四大权威世界大学排名 今年9月 英国 泰晤士高等教育 Times Higher Education 简称THE 发布了2020世界大学排
  • Linux下编辑并保存文件操作步骤

    墙裂建议看下 戳 vi 和 VIM的区别 详细介绍了编辑文件保存 步骤一 打开命令控制台找到要编辑的文件 可执行命令ls看看下面有几个文件 如要编辑的文件名称为 test 步骤二 打开文件 命令 vi 文件名 如打开文件test vi te
  • 编译器一定会生成默认构造函数和默认析构函数吗-不一定

    构造函数 以下四种情况同时满足时 编译器认为不用生成默认构造函数 1 没有虚函数 2 非静态成员没有 或者 的初始化 比如 int x 3 编译器就会给生成默认构造函数 3 直接继承的基类没有默认构造函数 4 成员函数没有默认构造函数 反过
  • AssetBundle详解与优化

    https www jianshu com p 5226659533cd 1 AssetBundle原理 AssetBundle是Unity中的一种资源包 这种资源包可以是游戏内要用到的几乎所有资源 例如 模型 纹理 预设 场景等大部分文件
  • Windows小技巧13-Windows10无法与时间服务器同步

    Windows小技巧13 Windows10无法与时间服务器同步 异常概述 解决方法 说明 异常概述 最近打开windows 同步时间 发现经常报同步失败的错误 具体如下图所示 经过几次查阅 重试 发现可以自己选择或者定义其他 ntp 同步
  • TestNG+Mybatis+Extent+lombok管理测试

    一 项目结构 maven引入jar包
  • GqlQuery 类

    http wapbaike baidu com view 8965981 htm uid D0604A052A48B0F5013EC29A99F19073 bd page type 1 st 3 step 2 net 0 ldr 0 概述