Таким образом, в настоящее время я храню коллекцию времени ожидания поездки в тематическом парке, и я ищу, чтобы получить самую последнюю введенную запись для каждой поездки. Для этого я использую функцию, которая берет название поездки и затем возвращает Обещание. Если у меня есть 20 уникальных поездок, я могу создать 20 обещаний с надеждой использовать Promise.All.
const rideSchema = new mongoose.Schema({
_id: {
type: mongoose.Schema.ObjectId
},
name: {
type: String
},
time: {
type: String
},
park: {
type: String
},
status: {
type: String
},
waitTime: {
type: Int32
}
});
const getRidesLastEntry = (name) => {
return new Promise((resolve, reject) => {
Ride.find({"name":name}).sort({"time":-1}).limit(1).catch((err) => console.log("getAllRidesLastEntry error: " + err)).then((doc) => resolve(doc));
})
}
Однако, если использовать этот метод, чтобы вернуть результаты, потребуется около 8 секунд, я не мог себе представить запросить 100 записей одновременно. Что я могу сделать, чтобы увеличить скорость поиска, чтобы я мог запросить 100 результатов одновременно?