0

そのため、mongodb に入力する必要がある「ピン」を含むファイルがあります。これらは というファイルに含まれてpins.txtおり、データは改行で区切られています。

A4DS24SD2
DF234SDF2
HFFGHFG45
JDRSDFG35
...

インポートする必要があるピンは約 70,000 あります。

各ピンには、次のデフォルトusedステータスもあります。false

したがって、このような膨大な数のピンをインポートするために、nodejs/mongoose (アプリに組み込まれている) を使用してこれを作成しました。

  fs.readFile './data/pins-test.txt', 'utf8', (err,data)->
    if err
      console.log err
    codes = data.split('\n')
    codes.forEach (code)->
      pin = new Pin()
      pin.pinid = code
      pin.save()

数百ピンのテストでは問題なく動作しますが、70,000 ファイルを試すとマシンのメモリが不足し、次のエラーが表示されます。

FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory

それで、私の質問は、これほど多くのデータをインポートする最良の方法は何ですか? これらを一度に 1 つずつ実行するには、async.js を使用する必要がありますか?

4

1 に答える 1