Definición
El complemento MongoDB para IntelliJ le permite ejecutar consultas escritas en Java directamente en los Playgrounds del Explorador de bases de datos.
El icono Ejecutar aparece junto a sus consultas MongoDB.
Comportamiento
Al hacer clic en el icono Ejecutar, el complemento convierte automáticamente su consulta Java a mongosh sintaxis y abre un archivo Playground con la consulta completada.
Para los valores de campo que son variables determinadas en tiempo de ejecución, el complemento crea una variable de marcador de posición. Puede rellenar esta variable con un valor de prueba y ejecutar la consulta en el Playground.
Limitaciones
El plugin IntelliJ no genera información en el panel lateral para las siguientes queries Java y Spring:
Cualquier consulta o agregación que no utilice un constructor BSON expuesto por el controlador Java de MongoDB. Esto incluye partes de consultas y agregaciones escritas con los siguientes constructores:
Documentos
Objetos básicos de base de datos
Listas básicas de bases de datos
Constructores de objetos básicos de base de datos
Consultas que utilizan métodos de compilación BSON no compatibles proporcionados por el controlador Java de MongoDB. Para obtener una lista de los métodos del controlador Java que el complemento IntelliJ puede usar para generar información, consulte Métodos del controlador Java para generar información.
Consultas que utilizan métodos no compatibles con Spring Data MongoDB. Para obtener una lista de los métodos de Spring Data que el complemento IntelliJ puede usar para generar información, consulte Métodos de criterios de Spring para generar información.
Ejemplo
En este ejemplo, la consulta Java en la colección production.trips se parece a la siguiente:
public List<Document> findCompletedTripsByDriver(String driverId) { return trips.find(Filters.and( Filters.eq(fieldName: "trip_status", value: "completed"), Filters.eq(fieldName: "driver_id", driverId) )).into(new ArrayList<>()); }
El siguiente ejemplo de código muestra la consulta convertida del código Java anterior:
var driver_id = "<driver ID>" db.getSiblingsDB("production") .getCollection("trips") .find({ "$and" : [ { "trip_status" : "completed" }, { "driver_id" : driver_id } ], })
En este ejemplo, driver_id es una variable que contiene un valor determinado en tiempo de ejecución. Para comprobar que la consulta genera los resultados esperados, debe especificar un valor de prueba reemplazando <driver ID> por el ID del controlador. Por ejemplo, driver_id = "1a2b3c4d5e".
Una vez que esté satisfecho con la consulta, puede ejecutarla en el Playground y ver los resultados de la consulta.