App Engine Datastore IN 运算符 - 如何使用?

2024-01-12

阅读:http://code.google.com/appengine/docs/python/datastore/gqlreference.html http://code.google.com/appengine/docs/python/datastore/gqlreference.html

我想使用:

:= IN

但我不确定如何让它发挥作用。我们假设以下情况

class User(db.Model):
    name = db.StringProperty()

class UniqueListOfSavedItems(db.Model):
    str = db.StringPropery()
    datesaved = db.DateTimeProperty()

class UserListOfSavedItems(db.Model):
    name = db.ReferenceProperty(User, collection='user')
    str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')

如何进行查询以获取用户已保存项目的列表?显然我可以这样做:

q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)

但这给了我一份钥匙列表。我现在想获取该列表并将其放入查询中,以从 UniqueListOfSavedItems 中获取 str 字段。我想我可以这样做:

q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")

但有些不对劲……有什么想法吗?是吗(我正在做日常工作,所以现在无法测试):

q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)

旁注:搜索是一个非常困难的问题,因为我真正关心的是“IN”运算符。


由于您有一个键列表,因此不需要执行第二次查询 - 您可以执行批量获取。尝试这个:

#and this should get me the items that a user saved
useritems = db.get(saveditemkeys)

(请注意,您甚至不需要保护子句 - 0 个实体上的 db.get 会适当地短路。)

您可能会问有什么区别?好吧,db.get 大约需要 20-40 毫秒。另一方面,查询(无论是否使用 GQL)大约需要 160-200 毫秒。但等等,情况会变得更糟! IN 运算符在 Python 中实现,并转换为多个串行执行的查询。因此,如果您使用 IN 过滤器对 10 个键执行查询,则您将执行 10 个独立的 160 毫秒左右的查询操作,总共大约有 1.6 秒的延迟。相比之下,单个 db.get 将具有相同的效果,并且总共需要大约 30 毫秒。

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

App Engine Datastore IN 运算符 - 如何使用? 的相关文章

  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • Google 云数据存储模拟器初始化数据

    我想在本地项目中使用谷歌云数据存储模拟器 我已经安装并运行了模拟器 gcloud beta emulators datastore start 我的应用程序连接到它 但问题是我不知道如何用实体填充它 因为没有用户界面 并且我的应用程序需要一
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • vkCmd* 函数的参数何时被消耗?

    一些vkCmd 函数指定何时使用或不使用某些参数 例如 在文档中vkCmdBindDescriptorSets pDynamicOffsets 的内容在期间立即被消耗 vkCmdBindDescriptorSets 的执行 但大多数人并没有
  • 在不使用命令行工具的情况下使用 Python Fabric (fab)

    尽管 Fabric 文档提到了一种使用该库进行 SSH 访问而不需要 fab 命令行工具和 或任务的方法 但我似乎无法管理一种方法来做到这一点 我想运行这个文件 示例 py 通过仅执行 python 示例 py env hosts exam
  • 支持在 Dynamics CRM 2016 中设置 Web 资源样式

    建议和支持的方式是什么来设计 CRM Web 资源的样式 使其与常规 CRM 表单 视图和对话框保持一致 想必您不会引用 CRM 正在使用的相同样式 因为这将不受支持 但是是否有一组可以直接引用的样式 以节省您自己编写的时间 它不是特定于
  • Android中如何处理ConcurrentModificationException

    我正在尝试从 a 中删除项目ArrayList 有时它弹出一个异常 java util ConcurrentModificationException 首先我尝试通过以下方式删除它们array list name remove i 但是失败
  • Fluent NHibernate 有很多外键映射问题

    我正在尝试在 nhibernate 中映射一个简单的数据结构 Tables Employees employeeID int username varchar 30 departmentID int Departments departme
  • 如何将 Spring Boot 应用程序日志文件读取到 Splunk 中? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望将日志数据从应用程序发送到 Splunk 我发现这与spring无关 只是Splunk需要一些配置来读取应用程序的日志文件 我想知道
  • 我可以将 SQL Server Management Studio 2005 用于 2008 DB 吗?

    我希望使用 Management Studio 2005 管理 SQL Server 2008 DB 原因是我们的服务器是 64 位计算机 而我们只有 64 位版本的软件 这可能吗 使用 Management Studio 2008 管理
  • 使用 stackalloc 分配的内存的初始化

    如果我分配内存stackalloc in C 内存是否已初始化 with 0 该文档没有提到这一点 只是告诉我们保留了正确的金额 在我的测试中 这种内存默认为0 但这并不意味着它是有保证的 从规格来看 18 8 堆栈分配 新分配的内存的内容
  • 如何重写WPF路由命令调度机制

    我可以以某种方式扩展 WPF 命令路由 以便它首先检查命令是否可以在聚焦字段中调用 如果不能在其他字段中调用 永远不会改变 有什么钩子吗 也许您不知道这是否可行 但在网络上的某个地方看到了类似的内容并且可以保留链接吗 抽象例子 例如 如果我
  • WebRTC:如何为视频编码器启用硬件加速

    我正在尝试在 WebRTC 的帮助下将屏幕捕获的视频发送到 mediasoup WebRTC 库中有一个类 Android 屏幕捕捉器 它可以工作 但在某些设备上的性能非常糟糕 特别是当我使用高清或更好的显示分辨率时 在 stackover
  • OpenCV:链接错误,无法解析外部符号 _cvResize 和 _cvCvtColor

    链接错误的原因很清楚 我的链接过程中缺少一些库 不幸的是 OpenCV 2 4 1 似乎改变了它的内部结构 所以我通过 Google Stackoverflow 搜索功能找到的解决方案只建议我链接到不再存在的库 cv lib 或 cxcor
  • 使用c#生成不记名令牌

    我有一个网络应用程序 我的要求是我需要在每次登录时生成 oauth2 不记名令牌 目前我们使用thinktecture来生成token 但是这个过程每次生成token大约需要7秒的时间 有什么方法可以在不使用 thinktecture 的情
  • SwiftUI 共享表导致 iPad 崩溃

    我正在关注这个教程https jeevatamil medium com how to create share sheet uiactivityviewcontroller in swiftui cef64b26f073 https je
  • 如何用eclipse安装android?

    我想用 eclipse 安装 android sdk 我也使用 Ubuntu 作为操作系统 请给予支持以及关于android的良好学习材料 Regards 要开始使用 Eclipse 进行 Android 开发 您必须安装ADT Plugi
  • 如何使用 glassfish v4 将 http 重定向到 https

    我们在 Glassfish v4 上创建了一个网站 它使用端口 8080 作为 http 使用端口 8081 作为 https 我们的思科防火墙将对端口 80 的请求转发到端口 8080 并将对端口 443 的请求转发到端口 8081 但我
  • 如何使用Eclipse IDE调试基于JavaFX 11的Maven项目(2019-03)

    问题 我无法使用建议的方法调试使用 Eclipse IDE 2019 03 4 11 0 编写和启动的基于 JavaFX 11 的 Maven 项目并用于相关问题 https stackoverflow com questions 5652
  • 如何在 R 中创建 (100%) 堆叠直方图?

    我的数据集 我有以下格式的数据 此处是从 CSV 文件导入 您可以找到 CSV 格式的示例数据集here http cl ly 3F1u0W2b3y081v172A2O PAIR PREFERENCE 1 5 1 3 1 2 2 4 2 1
  • Twig 在第一个特定字符作为分隔符后分割字符串

    我有一个与以下情况相同的问题这个问题 https stackoverflow com q 17304739 6578454 除了可能发生不止一个 是在正文中 一个例子 57b42a0557cdd Filename whatever pdf
  • 将 QWidget 嵌入 X11 窗口

    我想将两个 QWidget 嵌入到使用 XLib 创建的窗口中 我写了这段代码 Assume all the necessary headers included int main int argc char argv QApplicati
  • App Engine Datastore IN 运算符 - 如何使用?

    阅读 http code google com appengine docs python datastore gqlreference html http code google com appengine docs python dat