3

http://code.google.com/appengine/docs/python/datastore/entities.html#Saving_Getting_and_Deleting_Entitiesにあります

エンティティを取得するためのバッチ操作を以下に示します。

バッチ取得。エンティティ=db.get([k1、k2、k3])

キーを指定せずにすべてのエンティティをフェッチするにはどうすればよいですか?

4

2 に答える 2

3

私はこれに関する解決策を得て、 Datastore Queries - Query interface exampleで見つけることができます :

Query q = new Query("Person") 
        PreparedQuery pq = datastore.prepare(q);  
    for (Entity result : pq.asIterable()) {   
       String firstName = (String) result.getProperty("firstName");   
       String lastName = (String) result.getProperty("lastName");   
       Long height = (Long) result.getProperty("height");   
       System.out.println(lastName + " " + firstName + ", " + height.toString() + "inches tall"); 
}

データストアからすべてのエンティティを返すため、クエリにフィルターを追加しませんでした。

于 2011-02-09T05:45:53.263 に答える
0

これを行う簡単な方法は、常に true である条件でgqlを使用して結果をフェッチすることです。たとえば、エンティティに StringKey という名前の文字列フィールドがある場合、次のようにすることができます。

entities = db.gql("WHERE StringKey >''").fetch(1000)

1000 を超えるエンティティを取得することは可能ですが、GAE では簡単ではないことに注意してください。このディスカッションを参照してください。

于 2011-02-07T15:19:22.857 に答える