'use strict'; module.exports = app => { const mongoose = app.mongoose; const Schema = mongoose.Schema; const conn = app.mongooseDB.get('etlLocalDB'); // 车辆基础信息数据结构 本地清洗 数据结构 const StatsBaseInfoSchema2 = new Schema({ create_date: { type: Number }, // 统计的数据是哪一天的 year: { type: Number }, // 年 统计的数据 month: { type: Number }, // 月 统计的数据 day: { type: Number }, // 日 统计的数据 dateString: { type: String }, // 时间字符串 yyyy-MM-dd start_time: { type: Date }, // 开始统计时间 end_time: { type: Date, default: Date.now }, // 结束统计时间 data: [ { _id: { series_code: { type: String }, model_code: { type: String }, }, // 分组 车型 车系 stats_acce_cnt: { ar1: { type: Number }, ar2: { type: Number }, ar3: { type: Number }, ar4: { type: Number }, ar5: { type: Number }, ar6: { type: Number }, ar7: { type: Number }, ar8: { type: Number }, ar9: { type: Number }, ar10: { type: Number }, }, // 加速踏板开度统计 ar[x]:每隔10% 数量 stats_sp_range: { range1_cnt: { type: Number }, range2_cnt: { type: Number }, range3_cnt: { type: Number }, range4_cnt: { type: Number }, range5_cnt: { type: Number }, range6_cnt: { type: Number }, range7_cnt: { type: Number }, range8_cnt: { type: Number }, range9_cnt: { type: Number }, range10_cnt: { type: Number }, range11_cnt: { type: Number }, range12_cnt: { type: Number }, range13_cnt: { type: Number }, }, // 车速分布 range[x]_cnt:各速度分布次数,每隔10km/h stats_dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, // 制动减速度 dece[x],每隔0.04g stats_rotate: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, // 最大转向角 // rotate[x]: 3-10 deg,10-50 deg,50-100 deg,100-200 deg,200-300 deg,300-400 deg,400-500 deg,500-550deg stats_sp_rotate: { sp_1_cnt: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, sp_2_cnt: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, sp_3_cnt: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, }, // 车速对应转角 //sp_[x]_cnt:车速区间:(1:0-50km/h、2:50-80km/h、3:80-140km/h) // rotate[y]:各个转角区间(个数待定) stats_high_sp: { high_sp1: { type: Number }, high_sp2: { type: Number }, high_sp3: { type: Number }, }, // 高速行驶车速 80-100km/h 100-120km/h 120km/h以上 stats_start_sp: { start_sp1: { type: Number }, start_sp2: { type: Number }, start_sp3: { type: Number }, start_sp4: { type: Number }, start_sp5: { type: Number }, start_sp6: { type: Number }, start_sp7: { type: Number }, start_sp8: { type: Number }, start_sp9: { type: Number }, start_sp10: { type: Number }, start_sp11: { type: Number }, start_sp12: { type: Number }, start_sp13: { type: Number }, start_sp14: { type: Number }, }, // 起步车速 // start_sp[x],起步车速 每隔5km/h stats_sp_dece_cnt: { dr_mode_auto: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, dr_mode_eco: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, dr_mode_sport: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, dr_mode_confort: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, }, // 制动踏板减速度 // sp_{x}_cnt:0-5、5-10、10-30、30-60、60-80、80-100、100-140车速区间段。 制动减速度 dece[x],每隔0.04g stats_sp_acce_cnt: { sp_1_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_2_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_3_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_4_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_5_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_6_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_7_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, }, // 油门开度及加速度 // sp_{x}_cnt:0-5、5-10、10-30、30-60、60-80、80-100车速。 // acce表示的是加速踏板开度各个区间统计值,as表示的是加速度各个区间统计值(0-0.6g,每隔0.04g)。 // 纵向加速度区间 acce代表0-0.5g 0.05g为分段 共10段 yaw_portrait_acces: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, // 纵向减速度区间 dece代表0-0.8g 0.05g为分段 共16段 stats_dece_other: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, dece11: { type: Number }, dece12: { type: Number }, dece13: { type: Number }, dece14: { type: Number }, dece15: { type: Number }, dece16: { type: Number }, }, // 侧向加速度区间 acce代表0-0.5g 0.05g为分段 共10段 side_portrait_acces: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, // 不同车速下耗电占比 // range[x]_cnt::各速度电耗量,x为车速分布区间 // range1_cnt:车速在0-10km/h内次数 // range2_cnt:车速在10-20km/h内次数 // range3_cnt:车速在20-30km/h内次数 // range4_cnt:车速在30-40km/h内次数 // range5_cnt:车速在40-50km/h内次数 // range6_cnt:车速在50-60km/h内次数 // range7_cnt:车速在60-70km/h内次数 // range8_cnt:车速在70-80km/h内次数 // range9_cnt:车速在80-90km/h内次数 // range10_cnt:车速在90-100km/h内次数 // range11_cnt:车速在100-110km/h内次数 // range12_cnt:车速在110-120km/h内次数 // range13_cnt:车速在120km/h以上次数 sp_power_consumption: { range1_cnt: { type: Number }, range2_cnt: { type: Number }, range3_cnt: { type: Number }, range4_cnt: { type: Number }, range5_cnt: { type: Number }, range6_cnt: { type: Number }, range7_cnt: { type: Number }, range8_cnt: { type: Number }, range9_cnt: { type: Number }, range10_cnt: { type: Number }, range11_cnt: { type: Number }, range12_cnt: { type: Number }, range13_cnt: { type: Number }, }, }, ], }); StatsBaseInfoSchema2.index({ create_date: -1 }); return conn.model('StatsBaseInfo2', StatsBaseInfoSchema2, 'lc_stats_base_info'); };