/** * MongoDB Query Engine * * Translates MongoDB queries to SQL for execution on D1 * Supports full MongoDB query operator compatibility */ import { QueryFilter, FindOptions, UpdateOperators, UpdateOptions, AggregationPipeline, AggregationOptions, IQueryEngine, IIndexManager } from './interface.js'; interface SQLQuery { sql: string; params: any[]; } export declare class MongoQueryEngine implements IQueryEngine { private indexManager; private fieldMappings; constructor(indexManager: IIndexManager); /** * Translate MongoDB find query to SQL */ translateQuery(collection: string, filter?: QueryFilter, options?: FindOptions): Promise; /** * Translate MongoDB update query to SQL */ translateUpdate(collection: string, filter: QueryFilter, update: UpdateOperators, options?: UpdateOptions): Promise; /** * Translate aggregation pipeline to SQL */ translateAggregation(collection: string, pipeline: AggregationPipeline, options?: AggregationOptions): Promise<{ sql: string; params: any[]; stages: string[]; }>; /** * Optimize query for better performance */ optimizeQuery(query: any): Promise; /** * Analyze query performance */ analyzeQuery(query: any): Promise; /** * Build SELECT clause based on projection */ private buildSelectClause; /** * Translate MongoDB filter to SQL WHERE conditions */ private translateFilter; /** * Translate individual field condition */ private translateFieldCondition; /** * Add condition using indexed column */ private addIndexedCondition; /** * Add condition using JSON extraction */ private addJSONCondition; /** * Add sorting to query */ private addSorting; /** * Translate update operators */ private translateUpdateOperators; /** * Handle $set operator */ private handleSetOperator; /** * Handle $unset operator */ private handleUnsetOperator; /** * Handle $inc operator */ private handleIncOperator; /** * Handle $mul operator */ private handleMulOperator; /** * Handle $min operator */ private handleMinOperator; /** * Handle $max operator */ private handleMaxOperator; /** * Handle $currentDate operator */ private handleCurrentDateOperator; /** * Handle array operators (simplified implementation) */ private handleAddToSetOperator; private handlePopOperator; private handlePullOperator; private handlePushOperator; private handlePullAllOperator; /** * Translate aggregation stage */ private translateAggregationStage; /** * Build projection SELECT clause */ private buildProjectionSelect; /** * Translate $group stage */ private translateGroupStage; /** * Translate $unwind stage */ private translateUnwindStage; /** * Translate expression (for computed fields) */ private translateExpression; /** * Build final SQL query */ private buildFinalSQL; /** * Load field mappings for collection */ private loadFieldMappings; /** * Get field mapping */ private getFieldMapping; /** * Check if condition is simple (can use indexed column) */ private isSimpleCondition; /** * Convert MongoDB type to SQLite JSON type */ private mongoTypeToSQLiteType; /** * Convert regex to LIKE pattern (simplified) */ private regexToLikePattern; } export {}; //# sourceMappingURL=query-engine.d.ts.map