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

Chr*_*row 5 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]
Run Code Online (Sandbox Code Playgroud)

我很抱歉这可能是一个非常简单的问题,但我从文档中不清楚.

voi*_*hos 12

您似乎只想从查询中获取第一个实体.这query.get()是为了什么.

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

entity = query.get()
if entity is not None:
    # Do stuff
Run Code Online (Sandbox Code Playgroud)

来自文档:

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

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