Vista previa y explicación

Explica la diferencia entre la vista previa que verifica la consulta/pipeline DSL antes de la ejecución y el plan de ejecución real de MongoDB que se solicita con explain.


vista previa()

preview() renderiza la consulta/pipeline actual generada por DSL como un Document para diagnóstico sin ejecutar la consulta en MongoDB. Es una API para verificar el resultado de la construcción, no el plan de ejecución real.

java
Mono<Document> preview = dsl
    .executeEntity(User.class, MongoTemplateName.FRONT)
    .fields(pair("status", "ACTIVE"))
    .end()
    .findAll()
    .paging(0, 20)
    .sorts(sort -> sort.desc("id"))
    .preview();

• clásico findAll, find, count, exists, distinct

• agregación raíz aggregation()

• Atlas Search findAll/find/count/existsQuery

• Búsqueda Vectorial findAll/find/count/existsQuery

explicar()

explain() ejecuta la operación de explicación real del controlador de MongoDB, por lo que se necesita una conexión a la base de datos.

java
Mono<Document> explain = dsl
    .executeEntity(User.class, MongoTemplateName.FRONT)
    .fields(pair("status", "ACTIVE"))
    .end()
    .findAll()
    .explain(ExplainVerbosity.EXECUTION_STATS);

Se pueden pasar directamente los valores de ExplainVerbosity del controlador como QUERY_PLANNER, EXECUTION_STATS, ALL_PLANS_EXECUTIONS, etc.

Se utiliza de la misma manera en Búsqueda / Vector.

java
Mono<Document> searchPreview = dsl
    .executeEntity(Article.class, key)
    .search("articles_default")
    .text(text -> text.path("title").query("mongodb"))
    .findAll()
    .preview();

Mono<Document> vectorExplain = dsl
    .executeEntity(Article.class, key)
    .vectorSearch("articles_vector_index")
    .path("embedding")
    .queryVector(embedding)
    .limit(20)
    .approximate(200)
    .findAll()
    .explain();
© 2026 Byeolnaerim. Todos los derechos reservados.IntroducciónPolítica de privacidad