私はデータベースの行を表す2次元配列を持っています。 Excelでデータを読み込んで操作するためにofficeJSを使用しています。行の更新、挿入、および削除を行います。私が直面している課題は、データベースの行だけを更新できるように、変更された行(挿入、削除または更新)を把握する必要があることです。私は更新され挿入された行と削除された行のための1つのクエリに対して1つのクエリを送信しています。私は5000行10列のデータにlodashを使ってこれを行うことができます。私はもっと大きなデータセットにこれを拡大したいと思いますし、私が現在やっていることに何か他の選択肢があるのだろうかと思っています。以下は違いを見つけるために使用しているコードです。大きなデータセットのLodash 2d配列の比較
insertedOrUpdatedRows = _.differenceWith(modifiedData, originalData, _.isEqual);
deletedRows = _.differenceWith(originalData, modifiedData, compareFunction);
function compareFunction(a, b) {
if(a[0] == b[0]) {
return true;
}
else
return false;
}
サンプルデータアレイ
[1、データ、データ、データ]、 [2、データ、データ、データ]
最初の要素は、主キーです。
これはかなりまともな方法であるようです。 – nikjohn
それは5000行10列よりも大きなデータセットでは失敗します。より多くのデータを処理できる方法はありますか?おそらく、データをチャンクにダイビングするのでしょうか? –
ロダシュのように失敗してクラッシュしています。 –