У меня есть следующая схема Мангуста
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 поддерживать порядок при возврате к конечной точке экспресса? Нужно ли сортировать или я что-то не так делаю?