File tree Expand file tree Collapse file tree 1 file changed +19
-2
lines changed
Expand file tree Collapse file tree 1 file changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -88,8 +88,25 @@ export function mongooseCursorPaginate<T>(schema: Schema<T>) {
8888 }
8989 }
9090
91- logger . debug ( { baseQuery } ) ;
92- baseQuery = { ...baseQuery , ...decoded . query } ;
91+ logger . debug ( { baseQueryBeforeMerge : baseQuery , decodedQuery : decoded . query } ) ;
92+
93+ // Deep merge decoded.query ke baseQuery dengan handling khusus untuk aggregation
94+ for ( const key in decoded . query ) {
95+ if ( key === '_id' ) {
96+ // Merge _id conditions secara khusus
97+ baseQuery . _id = baseQuery . _id
98+ ? { ...baseQuery . _id , ...decoded . query . _id }
99+ : decoded . query . _id ;
100+ } else if ( key !== 'sort' ) {
101+ // Skip $or karena sudah dibuat di loop sebelumnya
102+ // Untuk field lain, merge langsung
103+ if ( key !== '$or' ) {
104+ baseQuery [ key ] = decoded . query [ key ] ;
105+ }
106+ }
107+ }
108+
109+ logger . debug ( { baseQueryAfterMerge : baseQuery } ) ;
93110 } catch ( e : any ) {
94111 if ( onError ) onError ( e ) ;
95112 logger . debug ( { e, stack : e . stack } ) ;
You can’t perform that action at this time.
0 commit comments