JSON-ответ от запроса mongoose, отображаемый не в порядке - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть следующая схема Мангуста

const analyticsSchema = new mongoose.Schema({
  All_Rehires_Processed: Number,
  All_Unique_Rehires_Processed: Number,
  Files_Generated: Number,
  Files_Generated_By_Position: {
    Core: {
      Server: {
        Server0: Number,
        Server1: Number,
        Server2: Number,
        Server3: Number
      }
    },
    Nop: {
      Server: {
        Server0: Number,
        Server1: Number,
        Server2: Number,
        Server3: Number
      }
    }
  },
  Rehires_By_Position: {
    Core: {
      Server: {
        Server0: Number,
        Server1: Number,
        Server2: Number,
        Server3: Number
      }
    },
    Nop: {
      Server: {
        Server0: Number,
        Server1: Number,
        Server2: Number,
        Server3: Number
      }
    }
  }
});

Когда я проверяю данные в базе данных, она возвращает результаты в правильном порядке. Я бегу

db.getCollection('analytics').find({}).pretty()

Возвращает правильный порядок.

{
  "_id": "5bdeafda975df6b565bfed2a",
  "All_Rehires_Processed": 137,
  "All_Unique_Rehires_Processed": 108,
  "Files_Generated": 41,
  "Files_Generated_By_Position": {
    "Core": {
      "Server": {
        "Server0": 1,
        "Server1": 1,
        "Server2": 1,
        "Server3": 1
      }
    },
    "Nop": {
      "Server": {
        "Server0": 0,
        "Server1": 1,
        "Server2": 1,
        "Server3": 1
      }
    }
  },
  "Rehires_By_Position": {
    "Core": {
      "Server": {
        "Server0": 30,
        "Server1": 30,
        "Server2": 14,
        "Server3": 11

      }
    },
    "Nop": {
      "Server": {
        "Server0": 0,
        "Server1": 1,
        "Server2": 1,
        "Server3": 1
      }
    }
  },
  "__v": 0
}

В настоящее время я возвращаю данные в экспресс-конечную точку

app.get('/analytics', (req, res) => {
  Analytics.find({}, (err, analytics) => {
    if (err) throw err;
    // check if analytics
    if (!analytics || analytics.length === 0) {
      return res.status(404).json({
        error: 'No files exist'
      });
    }
    //analytics exist
    return res.json(analytics);
  });
});

Это работает и возвращает ожидаемые данные, но в неправильном порядке. Возвращает данные в следующем порядке

{
  "Files_Generated_By_Position": {
    "Core": {
      "Server": {
        "Server0": 1,
        "Server1": 1,
        "Server2": 1,
        "Server3": 1
      }
    },
    "Nop": {
      "Server": {
        "Server0": 0,
        "Server1": 1,
        "Server2": 1,
        "Server3": 1
      }
    }
  },
  "Rehires_By_Position": {
    "Core": {
      "Server": {
        "Server0": 30,
        "Server1": 30,
        "Server2": 14,
        "Server3": 11

      }
    },
    "Nop": {
      "Server": {
        "Server0": 0,
        "Server1": 1,
        "Server2": 1,
        "Server3": 1
      }
    }
  },
  "_id": "5bdeafda975df6b565bfed2a",
  "All_Rehires_Processed": 137,
  "All_Unique_Rehires_Processed": 108,
  "Files_Generated": 41,
  "__v": 0
}

Есть ли способ заставить объект json поддерживать порядок при возврате к конечной точке экспресса? Нужно ли сортировать или я что-то не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...