How to fetch all entities in App engine datastore?

2019-05-10 23:21发布

in http://code.google.com/appengine/docs/python/datastore/entities.html#Saving_Getting_and_Deleting_Entities

the batch operation for getting the entity are stated below:

A batch get. entities = db.get([k1, k2, k3])

How can I fetch all entities without supplying keys?

2条回答
做个烂人
2楼-- · 2019-05-11 00:01

An easy was to do this is using gql with a condition that is always true and fetch the results. E.g. if your entity has a string field that's name is StringKey, you could do:

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

Note that getting more than 1000 entities is possible, but not straightforward in GAE, see this discussion.

查看更多
萌系小妹纸
3楼-- · 2019-05-11 00:16

I got a solution on this and can be found in 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"); 
}

I did not add filter in query since it return all entities from datastore.

查看更多
登录 后发表回答