2013-07-10 8 views
5

Sto cercando di scrivere un codice Java usando MongoDB api per creare questa query mongodb:

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

Ecco il codice che sto lavorando con finora:

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); 
} 

questo è in corso di stampa la sintassi sbagliata:

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

Qualsiasi aiuto?

risposta

3

Il problema è nel blocco else, è necessario utilizzare il metodo or anziché and.

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

Questo produrrà la query desiderata.

+0

Funziona. Grazie. Ci scusiamo per il voto in ritardo. –