Google数据存储区python每页返回的实体数更少

时间:2018-12-03 07:43:45

标签: google-cloud-datastore

我正在使用适用于数据存储区(google-cloud-datastore)版本1.4.0的Python客户端SDK。我正在尝试运行仅键查询:

query = client.query(kind = 'SomeEntity')
query.keys_only()

查询过滤器在field1上具有EQUAL条件,在field2上具有GREATER_THAN_OR_EQUAL条件。根据field2进行排序

对于提取,我要指定一个限制:

query_iter = query.fetch(start_cursor=cursor, limit=100)
page = next(query_iter.pages)

keyList = [entity.key for entity in page]
nextCursor = query_iter.next_page_token

尽管大约有50个实体满足此查询,但每次获取都会返回大约10-15个结果和一个游标。我可以使用光标来获取所有结果;但这会导致额外的通话开销

这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

keys_only查询在单个调用中限制为1000个条目。此操作算作单个实体读取。

针对文档中的其他limitations of Datastore, please refer detailed table

但是,在代码中,您确实将游标指定为后续检索操作的起点。可以限制查询,没有光标:

query = client.query() query.keys_only() tasks = list(query.fetch(limit=100))

有关如何使用limits and cursors的详细说明,请参阅Google Gloud数据存储区的文档