Untitled

 avatar
unknown
python
2 years ago
1.5 kB
4
Indexable
        page_size = 200000
        for i in range(0, len(activityRecordPositionIds), page_size):
            print("Querying {} to {}".format(i, i + page_size))
            activityRecordPositions.extend(db.activityRecordPositions.find({"_id": {"$in": activityRecordPositionIds[i:i + page_size]}}, rpProject))

        activityRecordPositions = {activityRecordPosition.get("_id"): activityRecordPosition for activityRecordPosition in activityRecordPositions}
        vehicles = {vehicle.get("_id"): vehicle.get('width') for vehicle in vehicles}

        for activity in activities:
            vehicleWidthDic = [vehicles.get(vehicle.get('vehicleId')) for vehicle in activity.get("sensors", [])]
            vehicleWidthDic = list(filter(None, vehicleWidthDic))
            if len(vehicleWidthDic) <= 0:
                continue
            activity["vehicleWidth"] = max(vehicleWidthDic)
            activity["recordPositions"] = [activityRecordPositions.get(activityRecordPositionId) for activityRecordPositionId in activity.get("activityRecordPositionIds")]
            zoneDic[activity.get("zoneId")].setdefault("activityRecords", []).append(activity)

        progresses = db.progresses.find({"inProgress": True, "zoneId": {"$in": zoneIds}})
        for progress in progresses:
            zoneDic[progress.get("zoneId")].setdefault("progresses", []).append(progress)
        zoneDic = {zoneId: zone for zoneId, zone in zoneDic.items() if len(zone.get("activityRecords", [])) > 0}
        return list(zoneDic.values())
Editor is loading...