2013-07-10 9 views
5

Ich versuche, einen Java-Code mit mongodb api zu schreiben, um diese mongodb Abfrage zu erstellen:

{ "$or": [{"prd" : {"$in" : ["1234", "0987"]}} , {"rsin" : "3228742"}]} 

Hier ist der Code, den ich mit so viel arbeitete:

QueryBuilder builder = new QueryBuilder(); 

if (builder == null) { 
    builder = QueryBuilder.start(); 
} 

if (mongoKey.equals("prd")){ 

    ArrayList<String> vals = new ArrayList<String>(); 

    for (int i=0; i < prdList; i++){ 
     vals.add(prdList.get(i)); 
    } 

    DBObject obj = new BasicDBObject (mongoKey, new BasicDBObject("$in", vals)); 
    builder.or(obj); 

}else { 
     builder.and(mongoKey).is(mongoValue); 
} 

Dies wird den Druck zur Zeit die falsche Syntax aus:

{ "$or": [{"prd" : {"$in" : ["1234", "0987"]}}] , "rsin" : "3228742"} 

Hilfe?

Antwort

3

Das Problem ist auf else Block, müssen Sie or Methode anstelle von and verwenden.

... 
}else { 
    builder.or(new BasicDBObject(mongoKey, mongoValue)); 
} 

Dadurch wird die Abfrage, die Sie möchten.

+0

Es funktioniert. Vielen Dank. Sorry für die späte Abstimmung. –