Saya memiliki 10.000.000 dokumen yang ingin saya masukkan ke dalam MongoDB.
Saya menggunakan luwak untuk membuat dokumen JSON yang diurai (JSON dibuat dengan mengubah konten banyak file txt).
Saya mulai menggunakan Model.create
untuk setiap dokumen, tetapi lambat dan memerlukan beberapa hari untuk menyelesaikan operasinya. Jadi saya beralih ke Model.collection.insert
untuk mempercepat.
Ini adalah fungsi saveToDB
saya (ditulis dalam TypeScript):
private saveToDB(hand: Hand): void {
this.bulkHands.push(new HandHistory(hand));
if(this.bulkHands.length >= 10000) {
HandHistory.collection.insert(this.bulkHands, (err): void => {
if(err) {
console.log('error', err);
}
this.bulkHands = [];
});
}
}
Saya mencoba kodenya dan Parser saya membuat array menjadi 10.000 dokumen dan kemudian mencoba memasukkannya ke dalam db. Tapi Node selalu crash dengan Segmentation fault: 11
.
Bahkan ketika saya menetapkan batas ke 1 (memasukkan satu dokumen pada satu waktu), hal ini terjadi. Jadi menurut saya ini ada hubungannya dengan fungsi Model.collection.insert
. Namun pengetahuan saya tentang struktur yang mendasarinya tidak cukup dalam untuk memahami apa yang terjadi di sini.
Adakah yang pernah mengalami masalah seperti itu? Dan apa yang bisa saya lakukan untuk mengatasinya?