معاينة وشرح

يشرح الفرق بين المعاينة التي تتحقق من استعلام DSL/خط الأنابيب قبل التنفيذ وخطة التنفيذ الفعلية لـ MongoDB.


معاينة()

معاينة() لا تنفذ استعلامًا على MongoDB، بل تقوم بتشخيص استعلام/خط أنابيب DSL الحالي كـ Document. إنها واجهة برمجة التطبيقات للتحقق من نتائج البناء، وليست خطة التنفيذ الفعلية.

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();

• الكلاسيكي findAll, find, count, exists, distinct

• الجذر aggregation()

• بحث أطلس findAll/find/count/existsQuery

• بحث المتجه findAll/find/count/existsQuery

اشرح()

اشرح() ينفذ عملية الشرح الفعلية لـ MongoDB Driver، لذا تحتاج إلى اتصال قاعدة بيانات.

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

يمكن تمرير قيم ExplainVerbosity مثل QUERY_PLANNER, EXECUTION_STATS, ALL_PLANS_EXECUTIONS كما هي.

يستخدم بنفس الطريقة في البحث / المتجه.

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 بيولناريم. جميع الحقوق محفوظة.مقدمةسياسة معالجة المعلومات الشخصية