问题标签 [gql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
42728 浏览

google-app-engine - Google App Engine:是否可以进行 Gql LIKE 查询?

真的很简单。在 SQL 中,如果我想在文本字段中搜索几个字符,我可以这样做:

App Engine 的文档没有提到如何实现这一点,但它肯定是一个常见的问题吗?

0 投票
4 回答
4831 浏览

python - Python:GQuery 结果集上的 DISTINCT(GQL、GAE)

想象一下,您在 Google App Engine 数据存储区中有一个实体,为匿名用户存储链接。您想要执行以下不受支持的 SQL 查询:

相反,您可以使用:

如何最有效地使用 Python过滤结果,使其返回 DISTINCT 结果集?如何计算 DISTINCT 结果集?

0 投票
1 回答
1240 浏览

google-app-engine - 有效跨越实体关系的 GQL 查询

我的情况是,我需要在 Django 数据库模型中的查询中跨越 Google App Engine 实体关系。我将ListPropertys 用于一对多关系,如下所示:

我想执行一个执行以下操作的查询:

这种理解似乎效率极低。我真的很想像注释掉的部分那样执行查询,但看起来GQL 语法不允许针对属性的属性进行查询:

0 投票
4 回答
1634 浏览

python - 您如何在 Google App Engine 项目中查询 Google App Domain 中的用户集?

如果您有一个 Google App Engine 项目,您可以基于 a) 拥有 google 帐户的任何人或 b) 特定的 google 应用程序域进行身份验证。由于您可以连接这两个实体,我假设有一些方法可以查询可以通过身份验证的用户列表。该用例将组织中所有成员的名册输出到在 Google App Engine 上运行的网页。有什么想法吗?

0 投票
9 回答
24929 浏览

google-app-engine - 在 GQL 中计算结果的最佳方法是什么?

我认为进行计数的一种方法是这样的:

我不喜欢的是我的计数将被限制为最大 1000 并且我的查询可能会很慢。有人有解决方法吗?我有一个想法,但感觉不干净。如果只有 GQL 有一个真正的 COUNT 函数......

0 投票
2 回答
1231 浏览

google-app-engine - Google App Engine 数据存储区中不精确查询的良好模式是什么?

Google App Engine 数据存储区查询语言 (gql) 不提供不精确的运算符,例如“LIKE”,甚至不区分大小写。可以通过存储字段的小写版本来解决区分大小写的问题。但是如果我想搜索一个人但我不确定名字的拼写怎么办?是否有处理这种情况的公认模式?

0 投票
1 回答
2899 浏览

google-app-engine - 实体子级的 Google App Engine 查询(非过滤器)

实体的子实体在查询中可用吗?

鉴于:

假设 500 家工厂生产了 500 种产品,共计 250,000 种产品。有没有办法形成一个资源高效的查询,只返回一个特定工厂生产的 500 种产品?祖先方法是一个过滤器,因此使用例如 Product.all().ancestor(factory_1) 将需要重复调​​用数据存储。

0 投票
2 回答
1718 浏览

google-app-engine - 如何在 Google App Engine 中实现互联网高分

我想为我的游戏实现互联网高分。并向玩家反馈他们的位置(不仅仅是top100或类似的东西)。在普通 SQL 中,它看起来像这样:

SELECT COUNT(*) FROM Scores WHERE points > :newUsersPoints

和 GQL 有类似的东西

db.GqlQuery("SELECT * FROM Score WHERE points > :1", newUsersPoints).count()

但由于 count() 仅限于 1000,因此在我的情况下它不会很有用。您对如何实现这一点有任何想法吗?

我有两个

第一的:

  1. 使用分片计数器的想法(http://code.google.com/intl/pl/appengine/articles/sharding_counters.html)创建新的“表”来存储在某个范围内的分数(from_points,to_points)

  2. 总结上表中 range.to_points < newUsersPoints 的所有计数器

  3. 在新分数为 db.GqlQuery("SELECT * FROM Score WHERE points > :1 AND points >= :2 AND points < :3", newUsersPoints, range.from_points, range. to_points).count() + sumfrom2

  4. 查找新分数所在的范围并增加其计数器

  5. 拆分计数器大于 1000(或 999)的范围,以便 3. 不会达到限制

  6. 将新分数添加到分数表

这是相当复杂且容易出错的。在添加分数之前,我们可能会增加一些范围和超时。(非交易性)

第二个想法:

不时(每天一次?)按分数对所有分数进行排序并给他们新的位置(脚本可能超时,所以我们必须分块执行)

要找出新分数在哪个地方,我们只需要做

db.GqlQuery("SELECT * FROM Score WHERE points > :1 LIMIT 1", newUsersPoints).get().precalculated_position + 1

还有其他想法吗?

0 投票
6 回答
2970 浏览

google-app-engine - 您在 Google App Engine 上进行开发有什么经验?

对于了解 SQL 的人来说,GQL 是否容易学习?Django/Python 怎么样?App Engine 真的让扩展变得容易吗?是否有针对“GQL 注入”的内置保护?等等...

我很想听听使用应用引擎的不那么明显的起伏。

干杯!

0 投票
1 回答
1406 浏览

python - Google AppEngine:日期范围未返回正确结果

我试图在特定类型的日期范围内搜索某些值,但查询未返回数据库中存在的日期的内容。

这是python代码的摘录:

GQL 返回数据,但我期望的一些行丢失了:

我通过 de bulkload 脚本上传了数据。我只能想到索引被损坏或类似的东西。这个相同的查询曾经适用于我拥有的另一个表。但是我不得不用其他来源的新内容替换它,而这个新内容并没有以同样的方式响应查询。如果这有什么不同的话,该表大约有 700.000 行。

我做了更多的研究,它似乎是 appEngine DataStore 中的一个错误。有关该错误的更多信息,请查看此链接: http ://code.google.com/p/googleappengine/issues/detail?id=901

我试过删除索引并重新创建它,但没有成功。

谢谢