在谷歌应用引擎上使用 NDB 时获取查询结果数量的好方法是什么?
尝试了这个:
query = NDB_Model.query(NDB_Model.some_property == some_value)
if len(query) > 0: # <-- this throws and exception
entity = query[0]
很抱歉,这可能是一个非常简单的问题,但从文档中我并不清楚。
在谷歌应用引擎上使用 NDB 时获取查询结果数量的好方法是什么?
尝试了这个:
query = NDB_Model.query(NDB_Model.some_property == some_value)
if len(query) > 0: # <-- this throws and exception
entity = query[0]
很抱歉,这可能是一个非常简单的问题,但从文档中我并不清楚。
您似乎只想从查询中获取第一个实体。这query.get()
就是为了。
query = NDB_Model.query(NDB_Model.some_property == some_value)
entity = query.get()
if entity is not None:
# Do stuff
从文档:
返回第一个查询结果(如果有)(否则为无)。这类似于调用 q.fetch(1) 并返回结果列表的第一项。
在更一般的形式中,要获取的最大实体数query.fetch(n)
在哪里。n
它返回一个列表,因此您可以轻松地检查len()
它。
要获取 ndb 查询的结果计数,您可以简单地使用count()
:
query = NDB_Model.query(NDB_Model.some_property == some_value)
if query.count() > 0:
entity = query[0]