معاينة وشرح
يشرح الفرق بين المعاينة التي تتحقق من استعلام 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();