@@ -200,18 +200,6 @@ def get_vpd_pipeline(
200
200
# The MongoDB aggregation pipeline for VPD calculation
201
201
pipeline = [
202
202
{"$match" : match_clause },
203
- {
204
- "$addFields" : {
205
- "group" : {
206
- "$floor" : {
207
- "$divide" : [
208
- {"$subtract" : ["$timestamp" , start_date ]},
209
- sampling_interval .total_seconds () * 1000 ,
210
- ]
211
- }
212
- }
213
- }
214
- },
215
203
{"$addFields" : {"tempAsFloat" : {"$toDouble" : "$temp" }}},
216
204
{"$addFields" : {"rhAsFloat" : {"$toDouble" : "$rh" }}},
217
205
{
@@ -242,15 +230,23 @@ def get_vpd_pipeline(
242
230
}
243
231
},
244
232
{
245
- "$group" : {
246
- "_id" : "$group" ,
247
- "timestamp" : {"$first" : "$timestamp" },
248
- "vpd" : {"$avg" : "$vpd" },
233
+ "$addFields" : {
234
+ "group" : {
235
+ "$floor" : {
236
+ "$divide" : [
237
+ {"$subtract" : ["$timestamp" , start_date ]},
238
+ sampling_interval .total_seconds () * 1000 ,
239
+ ]
240
+ }
241
+ }
249
242
}
250
243
},
251
- {"$project" : project_projection },
252
244
{"$sort" : {"timestamp" : 1 }},
245
+ {"$group" : {"_id" : "$group" , "doc" : {"$first" : "$$ROOT" }}},
246
+ {"$replaceRoot" : {"newRoot" : "$doc" }},
247
+ {"$project" : project_projection },
253
248
]
249
+
254
250
return pipeline
255
251
256
252
0 commit comments