Mongodb/Mongoose: расчет больших дифференциалов временных рядов в node.js слишком медленный (~ 5–6 секунд), несмотря на Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Mongodb/Mongoose: расчет больших дифференциалов временных рядов в node.js слишком медленный (~ 5–6 секунд), несмотря на

Сообщение Anonymous »

Я строю финансовый бэкэнд в node.js /express, который служит дифференциалам доходности облигаций для двух стран в минуту.// Models/bondMinuteModel.js
const mongoose = require("mongoose");

const bondMinuteSchema = new mongoose.Schema({
country: { type: String, required: true },
maturity: { type: String, required: true },
data: [
{
timestamp: { type: String, required: true }, // ISO datetime string
yield: { type: Number, required: true },
},
],
});

bondMinuteSchema.index({ country: 1, maturity: 1 }, { unique: true });
bondMinuteSchema.index({ "data.timestamp": 1 });

module.exports = mongoose.model("minutebonds", bondMinuteSchema);
< /code>
Конечная точка контроллера выглядит так (упрощено): < /p>
exports.getMinuteDifferential = async (req, res) => {
const { country1, maturity1, country2, maturity2 } = req.query;

const [bond1, bond2] = await Promise.all([
BondMinute.findOne(
{ country: country1, maturity: maturity1 },
{ _id: 0, data: { $slice: -7200 } }
).lean(),
BondMinute.findOne(
{ country: country2, maturity: maturity2 },
{ _id: 0, data: { $slice: -7200 } }
).lean(),
]);

const spreads = diffPropagated(bond1.data, bond2.data, "timestamp");
res.json({ spreads });
};
< /code>
Когда коллекции были небольшими, это было мгновенное. гидратация
Indexed {страна, зрелость} и data.timestamp
Даже когда я полностью пропускаю расчет DIFF и просто возвращаю необработанные данные [] массивы, он все еще медленный.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -js-is-too
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»