5

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]

これはおそらく非常に単純な質問であることをお詫びしますが、ドキュメントからは明確ではありませんでした。

4

2 に答える 2

12

クエリから最初のエンティティを取得したいようです。それ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()

于 2012-08-31T18:26:27.250 に答える
3

ndbクエリの結果カウントを取得するには、次のコマンドを使用できますcount()

query = NDB_Model.query(NDB_Model.some_property == some_value)
if query.count() > 0:
    entity = query[0]
于 2014-04-20T18:48:57.610 に答える