Shell
Last updated
Was this helpful?
Last updated
Was this helpful?
Se ha incluido el soporte para ejecutar instrucciones del shell de MongoDB directamente en Jmoordb.
Método
Descripción
List shell(String shell, Document... docSort)
shell: Es un String que representa instrucción MongoDB que se ejecuta en el shell. docSort es un documento que contiene la ordenación.
Por ejemplo: Ejecutamos una consulta mediante $elemMatch
referencia en MongoDB
https://docs.mongodb.com/manual/reference/operator/query/elemMatch/
en nuestro caso deseamos filtrar en una lista de documentos embebidos por dos o mas campos. Como recordara en una lista embebido en MongoDB (Array) , se aplica una condición Or, es decir busca en un documento dentro del array por un campo y si el otro valor del siguiente campo no esta en el mismo documento, continua buscando en otro documento por el segundo campo. De manera que para muchas condiciones and. no es factible utilizarlo , por esta razón podemos utilizar un $elemMatch para garantizar que se ejecuten las condiciones and en el mismo documento de una lista embebida.
La colección posee una lista embebida
documento de ejemplo
Si usamos Robo3T. ejecutamos la consulta
Aplicamos el filtro para encontrar el usuario que contenga denttro de la lista embebida profile docuemnto con la condicónl idapplicative = 3 idrole=12, iddepartament=3, active=false
Contamos con las entidades
User.java
Profile.java
Para reducir el ejemplo omitiremos las clases Applicative, Role y Departament.
Contamos con un repository
En el controller o clase que se desea utilizar
Desemos pasar el comando directamente como si lo hicieramos en el shell de mongodb
Con lo que debemos convertirlo a un String y luego invocar el metodo shell() del repository
Esto nos devuelve la lista de usuario cuyos profiles cumplen con las condiciones.