Oli*_*lie 23 google-app-engine gql
我认为对于类似SQL的人来说这很容易!我想要的是GQL相当于:
select count(*) from foo;
Run Code Online (Sandbox Code Playgroud)
并回答类似的答案:
1972 records.
Run Code Online (Sandbox Code Playgroud)
我想从基于Web的DataStore查看器中的"命令行"在GQL中执行此操作.(你知道,一次显示20个,让我看到"下一个20")
无论如何 - 我确信这很容易让人脑筋流满为止,我似乎无法找到正确的语法.任何帮助,将不胜感激.
谢谢!
小智 31
使用直接的数据存储控制台,没有直接的方法可以做到这一点,但我只想通过OFFSET关键字找出间接方法.
因此,给定一个表,我们将调用foo,其中包含一个名为type的字段,我们要检查名为"bar"的值:
SELECT * FROM foo WHERE type="bar" OFFSET 1024
Run Code Online (Sandbox Code Playgroud)
(我们将在这里做一个"更温暖,更冷"的快速游戏,二进制风格)
假设查询没有返回任何内容.将OFFSET改为512,然后改为256,128,64 ......你明白了.反过来相同:上升到2048,4096,8192,16384等,直到你看不到任何记录,然后退回.
我刚刚在这里做了一个.从2048年开始,注意到有两条记录出现了.表中有2049.在一个更极端的情况下,(假设有3300条记录),你可以从2048开始,注意有很多,去4096,没有...接下来的中点(2048和4096之间的1024是3072)并注意到你有记录......从那里你可以加上前一个中点的一半(512)得到3584,而且没有.回落一半(256)得到3328,仍然没有.再下来一半(128)得到3200并且有记录.上涨一半(64)并且还有记录.再次上升一半(32)到3296 - 仍然是记录,但是如此之小,你可以很容易地看到正好是3300.
关于此与数据存储区统计信息的好处是要查看表中有多少条记录,您可以通过WHERE子句对其进行限制.
JJ *_*wax 12
正如在其他 问题中所述,看起来countGQL中没有聚合函数.该GQL参考也没有说有这样做的能力,尽管它没有明确地说,这是不可能的.
在开发控制台(在本地运行您的应用程序),看起来只需单击"列表实体"按钮将显示某个类型的所有实体的列表,您可以看到"(某些数字)的结果1-10"到获得开发环境中的总计数.
在生产中,您可以使用"数据存储统计"选项卡(数据存储区查看器下方的链接),选择"显示统计数据:(您的实体类型)",它将显示实体总数,但这不是最新鲜的查看数据(每天至少更新一次).
由于您无法通过浏览器在生产中运行任意代码,我不认为" .count()在查询上使用"会有所帮助,但如果您使用的是Remote API,则该.count()方法不再限制为1000个条目2010年8月,所以你应该能够运行print MyEntity.all().count()并获得你想要的结果.
Ani*_*kur 12
我认为没有任何直接的方法可以通过GQL获取实体数量.但是你可以直接从dashbaord获得计数;
更多详细信息 - https://cloud.google.com/appengine/docs/python/console/managing-datastore
| 归档时间: |
|
| 查看次数: |
17925 次 |
| 最近记录: |