2017-07-21 3 views
0

Ich versuche, nur die Objekte vom Server mit passenden zwei Felder zu holen. Dafür brauche ich einen and Operator. Ich habe keine Idee, wie man einen und -Operator für die Parser-Abfrage verwendet. Ich habe zuvor einen Operator Or für Parser-Abfrage verwendet. Ein Or Operator macht das Gegenteil von dem, was ich in meinem Programm benötige. Ich gebe unten ein Or Operatorbeispiel. Bitte sagen Sie mir, wie Sie die mainQuery machen gleich whereContainedIn (mylist1 UND myList2)Und Operator in Parse Abfrage

ParseQuery myQuery1 = new ParseQuery("myTable"); 
myQuery1.whereContainedIn("key", myList1); 

ParseQuery myQuery2 = new ParseQuery("myTable"); 
myQuery2.whereContainedIn("key", myList2); 

List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>(); 
queries.add(myQuery1); 
queries.add(myQuery2); 

ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries); 
Now the mainQuery is equal to whereContainedIn(myList1 OR myList2) 
+0

call „whereContainedIn“ 2-mal auf der gleichen Abfrageobjekt die jeweiligen Filtern. Verwenden Sie KEINE 2 separaten Abfragen. –

Antwort

1

Wenn Sie Elemente in myTable suchen, in dem Schlüsselwert in mylist1 enthalten ist, myList2 Sie entweder eine neue Liste mit den erstellen zweimal Inhalt jedes eine oder die whereContainedIn Methode aufrufen:

ParseQuery myQuery1 = new ParseQuery("myTable"); 
myQuery1.whereContainedIn("key", myList1); 
myQuery1.whereContainedIn("key", myList2); 
// Test first if the Query builder retains both lists or if myList1 is replaced with myList2 

// OR 

// Only use unique values 
Set<T> mySet = new HashSet<T>(); 
set.addAll(myList1); 
set.addAll(myList2); 
List<T> myNewList = new ArrayList<T>(mySet); 
ParseQuery myQuery1 = new ParseQuery("myTable"); 
myQuery1.whereContainedIn("key", myNewList);