在谷歌应用引擎上使用NDB时获取查询结果数量的好方法是什么?
试图这样:
query = NDB_Model.query(NDB_Model.some_property == some_value)
if len(query) > 0: # <-- this throws and exception
entity = query[0]
我很抱歉这可能是一个非常简单的问题,但docs对我来说并不清楚。
答案 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]