@@ -23,7 +23,7 @@ def _group_count_resolver(condition, key, operator, name, data_type, sub_conditi
2323 }
2424
2525
26- def _group_push_resolver (condition , key , operator , name , data_type , sub_conditions , sub_fields , * args ):
26+ def _group_push_resolver (condition , key , operator , name , data_type , sub_conditions , sub_fields , datetime_fields , * args ):
2727 if not key and len (sub_fields ) == 0 :
2828 raise ERROR_DB_QUERY (reason = f"'aggregate.group.fields' condition requires fields: { condition } " )
2929
@@ -43,7 +43,16 @@ def _group_push_resolver(condition, key, operator, name, data_type, sub_conditio
4343 f_key = sub_field .get ('key' , sub_field .get ('k' ))
4444 f_name = sub_field .get ('name' , sub_field .get ('n' ))
4545
46- push_query [f_name ] = f'${ f_key } '
46+ if f_key in datetime_fields :
47+ push_query [f_name ] = {
48+ '$dateToString' : {
49+ 'format' : '%Y-%m-%dT%H:%M:%SZ' ,
50+ 'date' : f'${ f_key } '
51+ }
52+ }
53+ else :
54+ push_query [f_name ] = f'${ f_key } '
55+
4756
4857 return {
4958 name : {
@@ -193,7 +202,7 @@ def _project_object_to_array_resolver(condition, key, operator, name, fields, gr
193202 }
194203
195204
196- def _project_calculate_sub_query (condition , operator , fields , group_keys ):
205+ def _project_calculate_sub_query (condition , operator , fields , group_keys , * args ):
197206 supported_operator = ['add' , 'subtract' , 'multiply' , 'divide' ]
198207
199208 if operator is None :
@@ -232,20 +241,6 @@ def _project_calculate_sub_query(condition, operator, fields, group_keys):
232241 }
233242
234243
235- def _project_date_to_string_resolver (condition , key , operator , name , fields , group_keys , * args ):
236- if key in group_keys :
237- key = f'_id.{ key } '
238-
239- return {
240- name : {
241- '$dateToString' : {
242- 'format' : '%Y-%m-%dT%H:%M:%SZ' ,
243- 'date' : f'${ key } '
244- }
245- }
246- }
247-
248-
249244def _project_calculate_resolver (condition , key , operator , name , fields , group_keys , * args ):
250245 return {
251246 name : _project_calculate_sub_query (condition , operator , fields , group_keys )
@@ -270,7 +265,6 @@ def _project_calculate_resolver(condition, key, operator, name, fields, group_ke
270265 'sum' : _project_sum_resolver ,
271266 'array_to_object' : _project_array_to_object_resolver ,
272267 'object_to_array' : _project_object_to_array_resolver ,
273- 'date_to_string' : _project_date_to_string_resolver ,
274268 'add' : _project_calculate_resolver ,
275269 'subtract' : _project_calculate_resolver ,
276270 'multiply' : _project_calculate_resolver ,
0 commit comments