获取NDB查询长度 - 在Google App Engine上使用Python

时间:2012-08-31 18:18:57

标签: python google-app-engine app-engine-ndb

在谷歌应用引擎上使用NDB时获取查询结果数量的好方法是什么?

试图这样:

query = NDB_Model.query(NDB_Model.some_property == some_value)
if len(query) > 0:    # <-- this throws and exception
    entity = query[0]

我很抱歉这可能是一个非常简单的问题,但docs对我来说并不清楚。

2 个答案:

答案 0 :(得分:12)

您似乎只想从查询中获取第一个实体。这就是query.get()的用途。

query = NDB_Model.query(NDB_Model.some_property == some_value)

entity = query.get()
if entity is not None:
    # Do stuff

来自文档:

  

返回第一个查询结果(如果有)(否则为None)。这类似于调用q.fetch(1)并返回结果列表的第一项。

在更一般的形式中,query.fetch(n)其中n是要获取的最大实体数。它返回一个列表,因此您可以轻松地检查len()

答案 1 :(得分:3)

要获取ndb查询的结果计数,您只需使用count()

query = NDB_Model.query(NDB_Model.some_property == some_value)
if query.count() > 0:
    entity = query[0]