internal FlightRawDataRelationPoint[] GetFlightRawDataRelationPoints(AircraftModel aircraft, string flightID, string XAxisParameterID, string YAxisParameterID) { if (string.IsNullOrEmpty(flightID)) { LogHelper.Warn("flight为空或FlightID为空(GetFlightRawDataRelationPoints)。", null); return null; } using (AircraftMongoDbDal dal = new AircraftMongoDbDal()) { MongoServer mongoServer = dal.GetMongoServer(); //不用判断是否为空,必须不能为空才能继续,否则内部要抛异常 try {//此方法操作的记录为跟架次密切相关,需要拆分存储的记录,最好在DAL里面去处理表名构建逻辑 MongoDatabase database = dal.GetMongoDatabaseByAircraftModel(mongoServer, aircraft); if (database != null) { MongoCollection<FlightDataEntities.FlightRawDataRelationPoint> modelCollection = dal.GetFlightRawDataRelationPointsMongoCollection(database, flightID); List<IMongoQuery> qs = new List<IMongoQuery>(); IMongoQuery q1 = Query.EQ("FlightID", flightID); if (!string.IsNullOrEmpty(XAxisParameterID)) { IMongoQuery q2 = Query.EQ("XAxisParameterID", XAxisParameterID); qs.Add(q2); } if (!string.IsNullOrEmpty(YAxisParameterID)) { IMongoQuery q3 = Query.EQ("YAxisParameterID", YAxisParameterID); qs.Add(q3); } if (qs.Count == 0) { var cursor = modelCollection.Find(q1); var result = cursor.AsQueryable(); return result.ToArray(); } else { qs.Insert(0, q1); IMongoQuery all = Query.And(qs); var cursor = modelCollection.Find(all); var result = cursor.AsQueryable(); return result.ToArray(); } } } catch (Exception e) { LogHelper.Error("GetFlightRawDataRelationPoints", e); } } return null; }