Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取NDB查询长度-在Google应用程序引擎上使用Python_Python_Google App Engine_App Engine Ndb - Fatal编程技术网

获取NDB查询长度-在Google应用程序引擎上使用Python

获取NDB查询长度-在Google应用程序引擎上使用Python,python,google-app-engine,app-engine-ndb,Python,Google App Engine,App Engine Ndb,在google app engine上使用NDB时,获取查询结果数量的好方法是什么? 试图这样做: query = NDB_Model.query(NDB_Model.some_property == some_value) if len(query) > 0: # <-- this throws and exception entity = query[0] query=NDB\u Model.query(NDB\u Model.some\u属性==some\u值)

在google app engine上使用NDB时,获取查询结果数量的好方法是什么?

试图这样做:

query = NDB_Model.query(NDB_Model.some_property == some_value)
if len(query) > 0:    # <-- this throws and exception
    entity = query[0]
query=NDB\u Model.query(NDB\u Model.some\u属性==some\u值)

如果len(query)>0:#看起来您只是想从查询中获取第一个实体。这就是为什么

从文档中:

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


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

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


非常感谢您的回复,在我发布此问题后不久,当我在文档中找到关于使用“fetch()”的部分时,我觉得自己很愚蠢。但我还是很高兴我问了,因为我会用“query.fetch(1)[0]”而不是更好的“query.get()”@ChrisDutrow:没问题!使用
q.fetch(n)
时,请务必检查长度,因为fetch最多返回
n
实体,但返回的实体可能较少。
n
只是一个限制。@voithos使用NDB时获取查询结果数(仅计数)的好方法是什么?@Nijo:
query.count(限制)
query = NDB_Model.query(NDB_Model.some_property == some_value)

entity = query.get()
if entity is not None:
    # Do stuff
query = NDB_Model.query(NDB_Model.some_property == some_value)
if query.count() > 0:
    entity = query[0]