actually all i had to do was use an equality filter

query.addFilter("feeds", FilterOperator.EQUALS, feed.getId());

On Sep 21, 2:35 am, siliconeagle <rrmu...@gmail.com> wrote:
> I have an appengine app which has been running for about a year now, i
> have mainly been using JDO queries until now, but i am trying to
> collect stats and the queries are taking too long. I have the
> following entity (Device)
>
> public class Device implements Serializable{
>     ...
>     @Persistent
>     private Set<Key> feeds;// Key for the Feed entity
>     ...}
>
> So I want to get a count of how many Devices have a certain Feed. I
> was doing it in JDOQL before as such (uses javax.jdo.Query):
>
> Query query = pm.newQuery("select from Device where
> feeds.contains(:feedKey)");
> Map<String, Object> paramsf = new HashMap<String, Object>();
> paramsf.put("feedKey",feed.getId());
> List<Device> results = (List<Device>) query.executeWithMap(paramsf);
> Though this code times out now. I was trying to use the Datastore API
> so I could set chunk size,etc to see if i could speed the query up or
> use a cursor, but I am unsure how to search in a Set field. I was
> trying this (uses com.google.appengine.api.datastore.Query)
>
> Query query = new Query("Device");
> query.addFilter("feeds", FilterOperator.IN, feed.getId());
> query.setKeysOnly();
> final FetchOptions fetchOptions =
> FetchOptions.Builder.withPrefetchSize(100).chunkSize(100);
> QueryResultList<Entity> results =
> dss.prepare(query).asQueryResultList(fetchOptions);
> Essentially i am unsure how to search in the one-to-many filed (feeds)
> for a single key. Is it possible to index it somehow?
>
> hope it makes sense....

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to