Definición
El MongoDB para el plugin IntelliJ permite ejecutar queries escritas en Java directamente en los Playgrounds del Explorador de Base de datos.
El icono Ejecutar aparece junto a sus consultas MongoDB.
Comportamiento
Cuando haces clic en el icono Ejecutar, el plugin convierte automáticamente tu consulta Java en mongosh sintaxis y abre un archivo de Playground con la query rellena.
Para los valores de campo que son variables determinadas en tiempo de ejecución, el plugin crea una variable placeholder. Puede rellenar este marcador de posición 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 MongoDB Java Driver. Esto incluye partes de consultas y agregaciones escritas utilizando los siguientes constructores:
Documentos
BasicDBObjects
BasicDBLists
BasicDBObjectBuilders
Consultas que usan métodos de creación BSON no compatibles que proporciona el MongoDB Java Driver. Para obtener una lista de los métodos del driver de Java que pueden usarse para generar perspectivas mediante el plugin de IntelliJ, consulte Métodos del driver de Java para generar perspectivas.
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.