Estoy tratando de escribir un código de java usando mongodb api para crear este mongodb consulta:

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

Este es el código con el que estoy trabajando ahora:

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

Esto es en la actualidad la impresión de la sintaxis incorrecta:

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

Alguna ayuda?

OriginalEl autor night mare | 2013-07-10

1 Comentario

  1. 3

    El problema está en else bloque, es necesario utilizar or método en lugar de and.

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

    Esto producirá la consulta que desee.

    Funciona. Gracias. Lo siento por la tarde hasta el voto.

    OriginalEl autor Miguel Cartagena

Dejar respuesta

Please enter your comment!
Please enter your name here