Я строю финансовый бэкэнд в 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
Mongodb/Mongoose: расчет больших дифференциалов временных рядов в node.js слишком медленный (~ 5–6 секунд), несмотря на ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как реализовать безопасность при общении от node.js в mongodb с помощью mongoose
Anonymous » » в форуме Javascript - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-