internal string AddOrReplaceAircraftInstance(AircraftInstance instance)
        {
            using (AircraftMongoDbDal dal = new AircraftMongoDbDal())
            {
                MongoServer mongoServer = dal.GetMongoServer();
                //不用判断是否为空,必须不能为空才能继续,否则内部要抛异常
                try
                {//此方法操作的记录为跟架次密切相关,但肯定LevelTopRecord需要包含趋势分析等信息,
                    //建议不要分表,存放在Common里面
                    MongoDatabase database = dal.GetMongoDatabaseByAircraftModel(mongoServer, instance.AircraftModel);
                    if (database != null)
                    {
                        MongoCollection<FlightDataEntities.AircraftInstance> modelCollection
                            = dal.GetAircraftInstanceCollection(database);

                        IMongoQuery q1 = Query.EQ("AircraftNumber", new MongoDB.Bson.BsonString(instance.AircraftNumber));

                        MongoCursor<AircraftInstance> cursor = modelCollection.Find(q1);

                        if (cursor != null && cursor.Count() > 0)
                        {
                            foreach (var value in cursor.AsEnumerable())
                            {
                                value.LastUsed = instance.LastUsed;
                                value.AircraftModel = value.AircraftModel;
                                modelCollection.Save(value);
                            }
                        }
                        else
                        {//如果INSERT,就必须插入之后才有ObjectId,需要返回带有ObjectId的对象(不单单只考虑WCF返回没带有ObjectId的情况)
                            modelCollection.Insert(instance);

                            var cursor2 = modelCollection.Find(q1);
                            if (cursor2 != null && cursor2.Count() > 0)
                            {
                                instance = cursor2.First();
                            }
                            else instance = null;
                        }
                    }
                }
                catch (Exception e)
                {
                    LogHelper.Error("AddOrReplaceAircraftInstance", e);
                    return e.Message;
                }
            }
            return string.Empty;
        }
        internal string DeleteAircraftInstance(AircraftInstance instance)
        {
            using (AircraftMongoDbDal dal = new AircraftMongoDbDal())
            {
                MongoServer mongoServer = dal.GetMongoServer();
                //不用判断是否为空,必须不能为空才能继续,否则内部要抛异常
                try
                {//此方法操作的记录为跟架次密切相关,但肯定LevelTopRecord需要包含趋势分析等信息,
                    //建议不要分表,存放在Common里面
                    MongoDatabase database = dal.GetMongoDatabaseByAircraftModel(mongoServer, instance.AircraftModel);
                    if (database != null)
                    {
                        MongoCollection<FlightDataEntities.AircraftInstance> modelCollection
                            = dal.GetAircraftInstanceCollection(database);

                        IMongoQuery q1 = Query.EQ("AircraftNumber", new MongoDB.Bson.BsonString(instance.AircraftNumber));

                        MongoCursor<AircraftInstance> cursor = modelCollection.Find(q1);

                        if (cursor != null && cursor.Count() > 0)
                        {
                            //foreach (var value in cursor.AsEnumerable())
                            //{
                            //    value.LastUsed = instance.LastUsed;
                            //    value.AircraftModel = value.AircraftModel;
                            //}//.Save(value);
                        }
                        modelCollection.Remove(q1);
                    }
                }
                catch (Exception e)
                {
                    LogHelper.Error("DeleteAircraftInstance", e);
                    return e.Message;
                }
            }
            return string.Empty;
        }
        internal AircraftInstance[] GetAllAircrafts(AircraftModel model)
        {
            if (model == null || string.IsNullOrEmpty(model.ModelName))
            {
                LogHelper.Warn("aircraftModel为空或aircraftModel.ModelName为空或FlightID为空(GetAllAircrafts)。", null);
                return null;
            }

            using (AircraftMongoDbDal dal = new AircraftMongoDbDal())
            {
                MongoServer mongoServer = dal.GetMongoServer();
                //不用判断是否为空,必须不能为空才能继续,否则内部要抛异常
                try
                {//此方法操作的记录为跟架次密切相关,需要拆分存储的记录,最好在DAL里面去处理表名构建逻辑
                    MongoDatabase database =
                        dal.GetMongoDatabaseByAircraftModel(mongoServer, model);
                    if (database != null)
                    {
                        MongoCollection<FlightDataEntities.AircraftInstance> modelCollection
                            = dal.GetAircraftInstanceCollection(database);

                        modelCollection.FindAll();

                        //List<IMongoQuery> qs = new List<IMongoQuery>();

                        //IMongoQuery q1 = Query.EQ("FlightID", new MongoDB.Bson.BsonString(flightID));
                        //IMongoQuery q2 = Query.GTE("Index", new MongoDB.Bson.BsonInt32(startIndex));
                        //IMongoQuery q3 = Query.LTE("Index", new MongoDB.Bson.BsonInt32(endIndex));
                        //IMongoQuery q4 = Query.EQ("AircraftModelName", new MongoDB.Bson.BsonString(model.ModelName));
                        //IMongoQuery query = Query.And(q1, q2, q3, q4);

                        var cursor = modelCollection.FindAll();// modelCollection.Find(query);
                        var result = cursor.AsQueryable();
                        return result.ToArray();
                    }
                }
                catch (Exception e)
                {
                    LogHelper.Error("GetAllAircrafts", e);
                }
            }
            return null;
        }