sql >> Base de Datos >  >> NoSQL >> MongoDB

Spring Data MongoDB AND/OR consulta con múltiples parámetros opcionales

Si intenta cuidadosamente formatear a mano su consulta para que sea más legible, notará que ha cometido algunos errores con los paréntesis de cierre.

Pruebe esta consulta en su lugar:

{ $and : 
    [{
       $and: 
        [
         {$or : [ { $where: '?0 == null' } , { a : ?0 }]}, 
         {$or : [ { $where: '?1 == null' } , { b : ?1 }]},
         {$or : [ { $where: '?2 == null' } , { c : ?2 }]}
        ]
    }]
}

Nota al margen:creo que uno $and será suficiente, es decir, eliminar el $and de nivel superior operador.