我正在使用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*/);
.....
谢谢:)
答案 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(...);