У меня есть следующая схема из моей базы данных
var transactionsHistorySchema = new schema({
pointsAtThisMomentCustomer: Number,
notes: String,
rate: {
value: Number,
notes: String,
date: Number,
isRated: Boolean
},
createdAt: {
type: Number, default: new Date().getTime()
}
});
Я пытаюсь получить первую транзакцию после определенной даты startDate
Что я пробовал
db.TransactionsHistory.findOne({
createdAt: { $gte: info.startDate }
}).sort({ "createdAt": 1 }).exec(function (err, objStart) {
})
Но проблема с моим кодом в том, что ему каждый раз нужно сортировать полученные записи, потому что мангуст не хранит записи по возрастанию.
Как я могу заставить мангуста хранить записи по возрастанию на основе атрибута createAt
что, если результат содержит 500 записей и 1000 пользователей вызывают один и тот же API. Итак, у нас будет 1000 процессов сортировки, каждая из 500 записей. Разве это не большая трата серверных ресурсов и времени?
@MahmoudSaeed - это ответственность базы данных за хранение данных и управление ими. У вас нет власти на это. Если вы хотите избежать доступа к базе данных 1000 раз, вы можете добавить систему кеширования.
@MahmoudSaeed, который выполняется внутренним сервером базы данных; он уже оптимизирован.





Вы не можете этого сделать, это не вещь. Вы должны их отсортировать.