http://code.google.com/appengine/docs/python/datastore/entities.html#Saving_Getting_and_Deleting_Entitiesにあります
エンティティを取得するためのバッチ操作を以下に示します。
バッチ取得。エンティティ=db.get([k1、k2、k3])
キーを指定せずにすべてのエンティティをフェッチするにはどうすればよいですか?
http://code.google.com/appengine/docs/python/datastore/entities.html#Saving_Getting_and_Deleting_Entitiesにあります
エンティティを取得するためのバッチ操作を以下に示します。
キーを指定せずにすべてのエンティティをフェッチするにはどうすればよいですか?
私はこれに関する解決策を得て、 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");
}
データストアからすべてのエンティティを返すため、クエリにフィルターを追加しませんでした。
これを行う簡単な方法は、常に true である条件でgqlを使用して結果をフェッチすることです。たとえば、エンティティに StringKey という名前の文字列フィールドがある場合、次のようにすることができます。
entities = db.gql("WHERE StringKey >''").fetch(1000)
1000 を超えるエンティティを取得することは可能ですが、GAE では簡単ではないことに注意してください。このディスカッションを参照してください。