ParseQuery - 以及两列之间

时间:2015-08-22 18:57:56

标签: java android parse-platform

我正在使用Parse作为我的应用程序。
我的课程(消息)包含列' fromId',' toId'等等。
我正在寻找最佳的查询方式,从列#" fromId'中获取包含id1或id2的行。 AND id1或id2来自' toId',这意味着我正在寻找id1发送到id2的消息或id2发送给id1的消息。
示例代码:

    ParseQuery<Message> query = ParseQuery.getQuery(Message.class);

    query.orderByAscending("createdAt");
    query.whereContainedIn("FromId",fromIds/*list of id1,id2*/);
    query.whereContainedIn("toId",fromIds/*list of id1,id2*/);
    .....

谢谢:)

1 个答案:

答案 0 :(得分:0)

根据我的理解,您正在寻找类似OR的查询,而不是AND。为此,here is the official reference

简而言之,您应该创建两个不同的查询,并将它们与ParseQuery.or()合并在一起:

ParseQuery<Message> from = ParseQuery.getQuery("Message");
from.whereContainedIn("fromId",list);

ParseQuery<Message> to = ParseQuery.getQuery("Message");
to.whereContainedIn("toId",list);

List<ParseQuery<Message>> queries = new ArrayList<ParseQuery<ParseObject>>();
queries.add(from);
queries.add(to);

ParseQuery<Message> mainQuery = ParseQuery.or(queries);
mainQuery.findInBackground(...);