MongoDB Aggregation Pipeline Performance: Analysis of Query Plan Selection and Optimizer Behavior Across Versions and Collection Scales
Abstract
1. Introduction
2. Related Work
3. Experiments
3.1. Conceptual Framework and Experimental Design Rationale
3.2. Database Description
3.2.1. Document Structure
3.2.2. Index Configuration
3.3. Metrics
3.4. Experimental Results
- Test 1: Simple $match on status with $count
| Listing 1. Simple $match on status with $count. |
| [ { $match:{status:‘shipped’} }, { $count:‘total’ } ] |
- Test 2: $match on status + region (compound index)
| Listing 2. $match on status and region with $project. |
| [ { $match:{status:‘delivered’,region:‘EU’} }, { $project:{order_id,total_amount} } ] |
- Test 3: $match → $group (aggregation by category, SBE engine)
| Listing 3. $match on category followed by $group and $sort. |
| [ { $match:{category:‘Electronics’} }, { $group:{_id:‘$status’,total_revenue:{$sum}, avg_quantity:{$avg},count:{$sum:1}} }, { $sort:{total_revenue:−1} } ] |
- Test 4: $match → $sort → $limit (Top-N query)
| Listing 4. Top-N query with $match, $sort, $limit, and $project. |
| [ { $match:{status:{$in:[‘shipped’,‘delivered’]}} }, { $sort:{total_amount:−1} }, { $limit:100 }, { $project:{order_id,total_amount,region} } ] |
- Test 5: $match → $unwind → $group → $sort → $limit
| Listing 5. Complex pipeline with $unwind and $group over a date range. |
| [ { $match:{order_date:{$gte:ISODate(‘2023-01-01’)}} }, { $unwind:‘$tags’ }, { $group:{_id:{tag,region},revenue,orders} }, { $sort:{revenue:−1} }, { $limit:20 } ] |
- Test 6: Optimal compound index (ESR rule)
| Listing 6. ESR-compliant query with $match, $sort, $limit, and $project. |
| [ { $match:{category:‘Electronics’, status:‘delivered’} }, { $sort:{total_amount:−1} }, { $limit:50 }, { $project:{product,total_amount,region} } ] |
- Test 7: IXSCAN preference bias
| Listing 7. Low selectivity $match with $group aggregation. |
| [ { $match:{discount:{$gt:0.2},product:{$ne:‘Laptop’}, total_amount:{$gte:500}} }, { $group:{_id:‘$region’,count,avg} } ] |
- Test 8: $match → $group—canceled orders by customer (SBE engine)
| Listing 8. Canceled orders analysis by customer with $group, $sort, and $limit. |
| [ { $match:{status:‘cancelled’,region:‘US’} }, { group:{_id:‘$customer_id’,cancelled:{$sum:1},lost_revenue:{$sum}} }, { $sort:{lost_revenue:−1} }, { $limit:10 } ] |
- Test 9: $match → $group—canceled orders by customer (SBE engine)
| Listing 9. Early termination query with $limit at position 3/4. |
| [ { "$match": {"status": "shipped"} } { "$sort": {"total_amount": −1} }, { "$limit": 10 }, { "$project": {"order_id": 1, "total_amount": 1, "region": 1, "_id": 0} } ] |
3.5. Summary of Results
3.5.1. Execution Time Analysis
3.5.2. Deployment Environment Comparison
3.6. MongoDB Pipeline Optimizer
3.6.1. Purpose and Operating Principle
3.6.2. Results
3.6.3. Relationship with Relational Optimization Principles
3.7. Effect of Data Distribution on FPTP Behavior
3.8. Limitations
4. Conclusions
5. Future Work
Supplementary Materials
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Harrison, G.; Harrison, M. MongoDB Performance Tuning: Optimizing MongoDB Databases and Their Applications; Apress: Berkeley, CA, USA, 2021; ISBN 9781484268797. [Google Scholar]
- Chen, T.; Chen, H.; Gao, J.; Tu, Y. LOGER: A Learned Optimizer towards Generating Efficient and Robust Query Execution Plans. Proc. VLDB Endow. 2023, 16, 1777–1789. [Google Scholar] [CrossRef]
- Leis, V.; Gubichev, A.; Mirchev, A.; Boncz, P.; Kemper, A.; Neumann, T. How Good Are Query Optimizers, Really? Proc. VLDB Endow. 2016, 9, 204–215. [Google Scholar] [CrossRef]
- Tao, D.; Liu, E.; Randeni Kadupitige, S.; Cahill, M.; Fekete, A.; Röhm, U. First Past the Post: Evaluating Query Optimization in MongoDB. In Databases Theory and Applications. ADC 2024; Lecture Notes in Computer Science; Springer: Singapore, 2025; Volume 15449, pp. 99–113. [Google Scholar]
- Rathore, M.; Bagui, S.S. MongoDB: Meeting the Dynamic Needs of Modern Applications. Encyclopedia 2024, 4, 1433–1453. [Google Scholar] [CrossRef]
- Nuriev, M.; Zaripova, R.; Yanova, O.; Koshkina, I.; Chupaev, A. Enhancing MongoDB Query Performance through Index Optimization. In Proceedings of the E3S Web of Conferences, Yogyakarta, Indonesia, 7–8 August 2024; Volume 531. [Google Scholar]
- Heinrich, R.; Li, X.; Luthra, M.; Kaoudi, Z. Learned Cost Models for Query Optimization: From Batch to Streaming Systems. Proc. VLDB Endow. 2025, 18, 5482–5487. [Google Scholar] [CrossRef]
- Panwar, V. AI-Driven Query Optimization: Revolutionizing Database Performance and Efficiency. Int. J. Comput. Trends Technol. 2024, 72, 18–26. [Google Scholar] [CrossRef]
- Karri, N.; Muntala, P.S.R.P. Query Optimization Using Machine Learning. Int. J. Emerg. Trends Comput. Sci. Inf. Technol. 2023, 4, 109–117. [Google Scholar] [CrossRef]
- Ganesh Chandra, D. BASE Analysis of NoSQL Database. Future Gener. Comput. Syst. 2015, 52, 13–21. [Google Scholar] [CrossRef]
- Karras, A.; Karras, C.; Samoladas, D.; Giotopoulos, K.C.; Sioutas, S. Query Optimization in NoSQL Databases Using an Enhanced Localized R-Tree Index. In Information Integration and Web Intelligence. iiWAS 2022; Lecture Notes in Computer Science; Springer: Cham, Switzerland, 2022; Volume 13635, pp. 391–398. [Google Scholar]
- Mouhiha, M.; Mabrouk, A. NoSQL Data Warehouse Optimizing Models: A Comparative Study of Column-Oriented Approaches. Big Data Res. 2025, 40, 100523. [Google Scholar] [CrossRef]
- Chava, K.; Challa, S.R.; Sriram, H.K.; Chakilam, C.; Kannan, S.; Annapareddy, V.N. Utilizing Query Performance in NoSQL Databases for Applications Based on Big Data. In Proceedings of the 2nd IEEE International Conference on New Frontiers in Communication, Automation, Management and Security (ICCAMS), Bangalore, India, 11–12 July 2025; pp. 1–6. [Google Scholar]
- Seethala, S.C. ML-Enhanced SQL and NoSQL Query Optimization for High-Volume Big Data. Int. J. Sci. Res. Eng. Trends 2025, 11, 1–7. [Google Scholar]
- Marcus, R.; Negi, P.; Mao, H.; Zhang, C.; Alizadeh, M.; Kraska, T.; Papaemmanouil, O.; Tatbul, N. Neo: A Learned Query Optimizer. Proc. VLDB Endow. 2018, 12, 1705–1718. [Google Scholar] [CrossRef]
- Marcus, R.; Negi, P.; Mao, H.; Tatbul, N.; Alizadeh, M.; Kraska, T. Bao: Making Learned Query Optimization Practical. In Proceedings of the SIGMOD Record, Philadelphia, PA, USA, 12–17 June 2022; Volume 51, pp. 6–13. [Google Scholar]
- Anneser, C.; Tatbul, N.; Cohen, D.; Xu, Z.; Pandian, P.; Laptev, N.; Marcus, R. AutoSteer: Learned Query Optimization for Any SQL Database. Proc. VLDB Endow. 2023, 16, 3515–3527. [Google Scholar] [CrossRef]
- Doshi, L.; Zhuang, V.; Jain, G.; Marcus, R.; Huang, H.; Altinbüken, D.; Brevdo, E.; Fraser, C. Kepler: Robust Learning for Parametric Query Optimization. Proc. ACM Manag. Data 2023, 1, 109. [Google Scholar] [CrossRef]
- Chen, X.; Chen, H.; Liang, Z.; Liu, S.; Su, H.; Zheng, K.; Wang, J.; Zeng, K. LEON: A New Framework for ML-Aided Query Optimization. Proc. VLDB Endow. 2023, 16, 2261–2273. [Google Scholar] [CrossRef]
- Sulimov, P.; Lehmann, C.; Stockinger, K. GenJoin: Conditional Generative Plan-to-Plan Query Optimizer That Learns from Subplan Hints. Proc. ACM Manag. Data 2025, 3, 247. [Google Scholar] [CrossRef]
- Tao, J.; Maus, N.; Jones, H.; Zeng, Y.; Gardner, J.R.; Marcus, R. Learned Offline Query Planning via Bayesian Optimization. Proc. ACM Manag. Data 2025, 3, 179. [Google Scholar] [CrossRef] [PubMed]
- Marcus, R. Learned Query Superoptimization (Extended Abstract). In Proceedings of the CEUR Workshop Proceedings, Paris, France, 6–8 December 2023; Volume 3462. [Google Scholar]
- Van De Water, R.; Ventura, F.; Kaoudi, Z.; Quiane-Ruiz, J.A.; Markl, V. Farming Your ML-Based Query Optimizer’s Food. In Proceedings of the International Conference on Data Engineering, Online, 9–12 May 2022; Volume 2022, pp. 3186–3189. [Google Scholar]
- Negi, P.; Marcus, R.; Wu, Z.; Madden, S.; Kipf, A.; Kraska, T.; Tatbul, N.; Alizadeh, M. Robust Query Driven Cardinality Estimation under Changing Workloads. Proc. VLDB Endow. 2023, 16, 1520–1533. [Google Scholar] [CrossRef]
- Hettiarachchi, N.; Yapa, P. OptimAIzerSQL: Optimizing SQL Queries with Heuristic and ML-Based Multi-Agent Systems. In Proceedings of the 2025 5th International Conference on Machine Learning and Intelligent Systems Engineering, MLISE 2025, Shenzhen, China, 13–15 June 2025; pp. 40–48. [Google Scholar]

| Field | Type | Description/Values |
|---|---|---|
| order_id | String | Unique identifier: ORD-0000001 … ORD-0050000 |
| customer_id | String | 5000 distinct customers: CUST-00001 … CUST-05000 |
| product | String | Laptop, Phone, Tablet, Monitor, Keyboard |
| category | String | Electronics, Clothing, Food, Sports, Books |
| status | String | shipped, delivered, canceled, pending, processing |
| region | String | US, EU, ASIA, LATAM |
| quantity | Integer | Unit count, uniform 1–50 |
| unit_price | Double | Unit price, uniform 10.00–2000.00 |
| discount | Double | Discount rate, uniform 0.00–0.30 |
| total_amount | Double | total_amount = quantity × unit_price × (1 − discount) |
| order_date | Date | 1 January 2022–31 December 2023 |
| tags | Array | 0–3 elements drawn from a fixed tag vocabulary |
| Index | Key | Type |
|---|---|---|
| idx_status | { status: 1 } | Single-field, ascending |
| idx_region | { region: 1 } | Single-field, ascending |
| idx_category | { category: 1 } | Single-field, ascending |
| idx_status_region | { status: 1, region: 1 } | Compound, ESR-compatible |
| idx_total_amount | { total_amount: −1 } | Single-field, descending |
| idx_order_date | { order_date: 1 } | Single-field, range queries |
| idx_customer_id | { customer_id: 1 } | Single-field |
| idx_cat_status_amount | { category: 1, status: 1, total_amount: −1 } | Compound, ESR-covering |
| Plan | Strategy | Adv 6.0.3 | Adv 8.2.5 | Works 6.0.3 | Works 8.2.5 | Score 6.0.3 | Score 8.2.5 | Result |
|---|---|---|---|---|---|---|---|---|
| 0 | IXSCAN[idx_status_region] → FETCH → PROJECTION_SIMPLE | 101 | 101 | 101 | 101 | 2.0002 | 2.0002 | Winner (6.0.3 and 8.2.5) |
| 1 | IXSCAN[idx_region] → FETCH → PROJECTION_SIMPLE | 18 | 29 | 101 | 101 | 1.1784 | 1.2873 | Rejected |
| 2 | IXSCAN[idx_status] → FETCH → PROJECTION_SIMPLE | 19 | 25 | 101 | 101 | 1.1883 | 1.2477 | Rejected |
| Plan | Strategy | Adv 6.0.3 | Adv 8.2.5 | Works 6.0.3 | Works 8.2.5 | Score 6.0.3 | Score 8.2.5 | Result |
|---|---|---|---|---|---|---|---|---|
| 0 | IXSCAN[idx_category] → FETCH → GROUP | 0 | 101 | 0 | 101 | 2.0002 | 2.0002 | Winner (6.0.3 and 8.2.5) |
| 1 | IXSCAN[idx_cat_status_amount] → FETCH → PROJECTION_SIMPLE | 0 | 101 | 0 | 101 | 2.0002 | 2.0002 | Rejected |
| Plan | Strategy | Adv 6.0.3 | Adv 8.2.5 | Works 6.0.3 | Works 8.2.5 | Score 6.0.3 | Score 8.2.5 | Results |
|---|---|---|---|---|---|---|---|---|
| 0 | IXSCAN[idx_total_amount] → FETCH → PROJECTION_SIMPLE → LIMIT | 100 | 100 | N/A | 188 | 2.5319 | 2.5321 | Winner (6.0.3 and 8.2.5) |
| 1 | IXSCAN[idx_status] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | N/A | 188 | 1.0001 | 1.0001 | Rejected |
| 2 | IXSCAN[idx_status_region] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | N/A | 188 | 1.0001 | 1.0001 | Rejected |
| Metric | MongoDB 6.0.3 | MongoDB 8.2.5 | Difference |
|---|---|---|---|
| FPTP active | No (0 plans) | No (0 plans) | None |
| Winning Index | idx_order_date | idx_order_date | None |
| Execution Time | 131 ms | 103 ms | 21% improvement in 8.2.5 |
| Pipeline Optimizer | 5 → 4 stages | 5 → 4 stages | None |
| FPTP active | No (0 plans) | No (0 plans) | None |
| Plan | Strategy | Adv 6.0.3 | Adv 8.2.5 | Works 6.0.3 | Works 8.2.5 | Score 6.0.3 | Score 8.2.5 | Result |
|---|---|---|---|---|---|---|---|---|
| 0 | IXSCAN[idx_cat_status_amount] → FETCH → PROJECTION_SIMPLE → LIMIT | 50 | 50 | 50 | 50 | 3.0002 | 3.0002 | Winner (6.0.3 and 8.2.5) |
| 1 | IXSCAN[idx_status] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | 50 | 50 | 1.0001 | 1.0001 | Rejected |
| 2 | IXSCAN[idx_category] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | 50 | 50 | 1.0001 | 1.0001 | Rejected |
| 3 | IXSCAN[idx_status_region] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | 50 | 50 | 1.0001 | 1.0001 | Rejected |
| Metric | MongoDB 6.0.3 | MongoDB 8.2.5 | Interpretation |
|---|---|---|---|
| Winning Stage | GROUP | GROUP | Identical |
| Winning Index | COLLSCAN | idx_total_amount | Critical difference |
| Physical plan | COLLSCAN → GROUP | IXSCAN → FETCH → GROUP | Different strategy |
| Index Filter Ratio | 0.0001 | 0.0001 | Identical selectivity |
| Execution Time | 163 ms | 134 ms | 8.2.5 is faster but selects the suboptimal plan |
| Plan | Strategy | Adv 6.0.3 | Adv 8.2.5 | Works 6.0.3 | Works 8.2.5 | Score 6.0.3 | Score 8.2.5 | Result |
|---|---|---|---|---|---|---|---|---|
| 0 | IXSCAN[idx_status_region] → FETCH → GROUP | N/A | 101 | 0 | 101 | 1.5027 | 2.0002 | Winner (6.0.3 and 8.2.5) |
| 1 | IXSCAN[idx_region] → FETCH → PROJECTION_SIMPLE | N/A | 19 | 0 | 101 | 1.1445 | 1.1883 | Rejected |
| 2 | IXSCAN[idx_status] → FETCH → PROJECTION_SIMPLE | N/A | 19 | 0 | 101 | 1.1301 | 1.1883 | Rejected |
| Plan | Strategy | Adv 6.0.3 | Adv 8.2.5 | Works 6.0.3 | Works 8.2.5 | Score 6.0.3 | Score 8.2.5 | Result |
|---|---|---|---|---|---|---|---|---|
| 0 | IXSCAN[idx_total_amount] → FETCH → PROJECTION_SIMPLE → LIMIT | 10 | 10 | 25 | 36 | 2.4002 | 2.2780 | Winner (6.0.3 and 8.2.5) |
| 1 | IXSCAN[idx_status] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | 25 | 36 | 1.0001 | 1.0001 | Rejected |
| 2 | IXSCAN[idx_status_region] → FETCH → SORT → PROJECTION_SIMPLE | 0 | 0 | 25 | 36 | 1.0001 | 1.0001 | Rejected |
| Test | FPTP 6.0.3 | FPTP 8.2.5 | Plans 6.x/8.x | Time 6.0.3 | Time 8.2.5 | Δ Time * | Winning Stage, MongoDB 6.0.3 | Winning Stage, MongoDB 8.2.5 |
|---|---|---|---|---|---|---|---|---|
| T1 | No | No | 0/0 | 4 ms | 4 ms | 0% | COUNT_SCAN | GROUP |
| T2 | Yes | Yes | 3/3 | 6.5 ms | 8 ms | +23% | PROJECTION_SIMPLE | PROJECTION_SIMPLE |
| T3 | Yes | Yes | 2/2 | 42 ms | 31 ms | −26% | GROUP | GROUP |
| T4 | Yes | Yes | 3/3 | 2 ms | 2 ms | 0% | LIMIT | LIMIT |
| T5 | No | No | 0/0 | 130.5 ms | 102.5 ms | −21% | PROJECTION_SIMPLE | PROJECTION_SIMPLE |
| T6 | Yes | Yes | 4/4 | 1 ms | 1 ms | 0% | LIMIT | LIMIT |
| T7 | No | No | 0/0 | 163 ms | 133.5 ms | −18% | GROUP (COLLSCAN) | GROUP (IXSCAN) |
| T8 | Yes | Yes | 3/3 | 16.5 ms | 15 ms | −9% | GROUP | GROUP |
| T9 | Yes | Yes | 3/3 | 1 ms | 1 ms | 0% | LIMIT | LIMIT |
| Test | MongoDB 6.0.3—Median (ms) | MongoDB 8.2.5—Median (ms) | Scaling | ||||
|---|---|---|---|---|---|---|---|
| 50K | 150K | 250K | 50K | 150K | 250K | ||
| T1 | 4 | 15 | 23 | 4 | 13.5 | 18 | Δ: 0%/−10%/−22% |
| T2 | 6.5 | 18 | 28 | 8 | 18.5 | 32 | Δ: +23%/+3%/+14% |
| T3 | 42 | 151 | 237 | 31 | 108.5 | 199.5 | Δ: −26%/−28%/−16% |
| T4 | 2 | 3 | 3 | 2 | 3.5 | 3.5 | Version- and size-independent |
| T5 | 130.5 | 357 | 735.5 | 102.5 | 376 | 668.5 | Δ: −21%/+5%/−9% |
| T6 | 1 | 2 | 2 | 1 | 2 | 2 | Version- and size-independent |
| T7 | 163 | 423.5 | 740.5 | 133.5 | 405.5 | 699 | Δ: −18%/−4%/−6% |
| T8 | 16.5 | 31 | 47 | 15 | 28 | 42 | Δ: −9%/−10%/−11% |
| T9 | 1 | 1 | 1 | 1 | 2 | 1.5 | Version- and size-independent |
| Test | 50K Documents | 150K Documents | 250K Documents | |||
|---|---|---|---|---|---|---|
| Local | Atlas | Local | Atlas | Local | Atlas | |
| T1 | 38.6 | 0.0 | 17.0 | 3.6 | 14.1 | 1.8 |
| T2 | 21.9 | 6.1 | 12.6 | 2.4 | 23.1 | 1.6 |
| T3 | 12.7 | 0.0 | 13.9 | 0.8 | 11.4 | 0.6 |
| T4 | 38.2 | 0.0 | 34.7 | 0.0 | 26.1 | 0.0 |
| T5 | 13.7 | 1.5 | 10.7 | 1.0 | 6.7 | 0.8 |
| T6 | 44.3 | 0.0 | 38.9 | 0.0 | 43.3 | 0.0 |
| T7 | 11.3 | 1.4 | 7.5 | 1.1 | 3.8 | 1.3 |
| T8 | 14.9 | 2.5 | 7.7 | 1.8 | 14.1 | 2.5 |
| T9 | 58.3 | 447.2 * | 44.3 | 447.2 * | 39.0 | 447.2 * |
| Test | Original Pipeline | Optimized Pipeline | Optimization |
|---|---|---|---|
| T1 | $match → $count | $cursor($match + $count) | COUNT_SCAN/GROUP |
| T2 | $match → $project | $cursor($match + $project) | $project absorbed into cursor |
| T3 | $match → $group → $sort | $cursor($match + $group) → $sort | $group in SBE cursor; $sort remains |
| T4 | $match → $sort → $limit → $project | $cursor($match + $sort* + $limit + $project) | Index-provided sort; 4 → 1 stages |
| T5 | $match → $unwind → $group → $sort → $limit | $cursor($match) → $unwind → $group → $sort → $limit | No reordering |
| T6 | $match → $sort → $limit → $project | $cursor($match + $sort* + $limit + $project) | Index-provided sort (ESR); 4→1 stages |
| T7 | $match → $group | $cursor($match + $group) | $group in SBE cursor |
| T8 | $match → $group → $sort → $limit | $cursor($match + $group) → $sort → $limit | $group in SBE cursor; $sort and $limit remain |
| T9 | $match → $sort → $limit → $project | $cursor($match + $sort* + $limit + $project) | Index-provided sort; 4→1 stages |
| Optimization | Relational Analog | MongoDB-Specific Aspect |
|---|---|---|
| Predicate pushdown ($match early) | Standard in all CBO systems | No MongoDB-specific aspect |
| Count without document fetch (T1) | Index-only scan in relational systems | Implementation differs: MongoDB 6.0.3 uses COUNT_SCAN; 8.2.5 uses SBE GROUP |
| Project while matching (T2) | Projection pushdown in CBO | No MongoDB-specific aspect |
| Hash aggregation for $group (T3, T8) | Hash aggregation in relational systems | FPTP loses productivity signal (Advanced = 0)—no CBO analog for this failure mode |
| Compound index with equality then sort (T6) | Composite index in relational systems | ESR rule is MongoDB-specific; relational systems use cost estimation to choose field order |
| Early termination via $limit (T4, T6, T9) | Top-N optimization in relational systems | In MongoDB, early termination is gated by cursor/non-cursor layer split—operators outside $cursor cannot participate |
| IXSCAN preference at low selectivity (T7) | CBO avoids this via cardinality estimates | Structural artifact of Advanced/Works metric—no CBO analog; COLLSCAN is systematically underrepresented as a candidate |
| $unwind document multiplication (T5) | No relational analog | Specific to document-oriented model; array unnesting multiplies the document stream before $group, outside the scope of the FPTP mechanism |
| SBE engine/Works unavailability (T3, T8) | No relational analog | Specific to MongoDB 8.x virtual machine architecture; Works metric is unavailable, forcing FPTP to rely on Score alone |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Ivanov, R. MongoDB Aggregation Pipeline Performance: Analysis of Query Plan Selection and Optimizer Behavior Across Versions and Collection Scales. Information 2026, 17, 488. https://doi.org/10.3390/info17050488
Ivanov R. MongoDB Aggregation Pipeline Performance: Analysis of Query Plan Selection and Optimizer Behavior Across Versions and Collection Scales. Information. 2026; 17(5):488. https://doi.org/10.3390/info17050488
Chicago/Turabian StyleIvanov, Rosen. 2026. "MongoDB Aggregation Pipeline Performance: Analysis of Query Plan Selection and Optimizer Behavior Across Versions and Collection Scales" Information 17, no. 5: 488. https://doi.org/10.3390/info17050488
APA StyleIvanov, R. (2026). MongoDB Aggregation Pipeline Performance: Analysis of Query Plan Selection and Optimizer Behavior Across Versions and Collection Scales. Information, 17(5), 488. https://doi.org/10.3390/info17050488

