构建查询后,您可以指定一些检索选项以进一步控制查询返回的结果。如需详细了解如何为应用构建查询,请参阅数据存储区查询。
检索单个实体
要仅检索与查询匹配的单个实体,请使用 Query.get()
(或 GqlQuery.get()
)方法:
q = Person.all()
q.filter("last_name =", target_last_name)
result = q.get()
该方法将返回索引中找到的与查询匹配的第一个结果。
遍历查询结果
使用 Query
或 GqlQuery
对象的 run()
方法遍历查询结果时,Cloud Datastore 会对结果进行批量检索。默认情况下,每批包含 20 个结果,但您可以使用该方法的 batch_size
参数更改此值。您可以持续遍历查询结果,直到返回所有结果或者请求超时。
检索实体的特定属性
如需仅检索实体的选定属性(而非检索整个实体),请使用投影查询。与返回完整实体的查询相比,此类查询运行速度更快,且花费更低。
与之类似,仅限于键的查询将仅返回匹配的实体的键(而非完整实体),以节省时间和资源。要创建此类查询,请在构建查询对象时设置 keys_only=True
:
q = Person.all(keys_only=True)
设置查询限制
您可以为查询指定限制,以控制一个批次中可返回的最大结果数。以下示例将从 Cloud Datastore 中检索身高排名前五的人:
q = Person.all()
q.order("-height")
for p in q.run(limit=5):
print "%s %s, %d inches tall" % (p.first_name, p.last_name, p.height)
后续步骤
- 了解 Cloud Datastore 查询的常见限制。
- 了解查询游标,应用可通过它以便利的批次形式检索查询结果。
- 了解数据一致性以及它如何与 Cloud Datastore 上不同类型的查询搭配使用。
- 了解 Cloud Datastore 查询的基本语法和结构。