我在我的專案中使用 Sequelize,但在將簡單查詢轉換為 Sequelize 時遇到了一些麻煩。此外,我正在尋找一種批量插入此查詢的方法。
查詢:
INSERT INTO productstatistics (shopId, productId, average, min, max)
VALUES (SELECT p."shopId", p."productId", avg(p."basicPrice") as average, min(p."basicPrice"), max(p."basicPrice") FROM productprice p
WHERE p."productId" = 123 AND p."shopId" = 321)
對于背景關系,我有 3 個表:Shops、Products 和 productPrices。每個商店都有每種產品。并且每個組合產品/商店,productPrices 都有該商店所有價格的歷史記錄。
在這里,我正在嘗試使用這 3 個表中的一些統計資訊創建一個新表 productstatistics。
我嘗試的第一件事是遍歷我所有的商店,然后遍歷我的所有產品并執行Sequelize raw query。
但就我而言,這是超過 3 000 000 條記錄。我可以在異步中做到這一點,但它需要永遠,或者在 withPromise.all()但之后我達到:
JavaScript 堆記憶體不足
如何以最佳方式使用 Sequelize 來實作我的目標?有沒有辦法使用 Sequelize 對我的所有產品和所有商店運行前面描述的查詢?
uj5u.com熱心網友回復:
您要么需要使用Sequelize.query執行您在問題中指出的原始 SQL 查詢,要么執行SELECT部分查詢作為原始 SQL 查詢(再次使用Sequelize.query)從productprice塊中使用limit和offset選項和使用bulkInsertSequelize 模型。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465866.html
標籤:节点.js 打字稿 PostgreSQL 续集.js
上一篇:計算一個月內有多條記錄的月平均值
