2017-10-13 66 views
0

只是有點背景,如果我用insertMany代替MongoDB,它不會崩潰。nodejs - MongoDB在插入次數太多時崩潰

因此,這裏的相關代碼:

var propertiesObject = { results: 5000 }; 

request({url: "https://randomuser.me/api", qs:propertiesObject}, function(err, r, body) { 
    if(err) { console.log(err); return; } 
    console.log("Get response: " + r.statusCode); 

    let j = JSON.parse(r.body) 

    let id = 1 
    let users = j.results 

    for (let user of users) 
    { 
     MongoClient.connect("mongodb://localhost:27017/test", function (err, db) { 
      db.collection('Persons', function (err, collection) { 
       collection.insert({ id, first_name: user.name.first, lastName: user.name.last }) 
      }) 
     }) 
     id++ 
    } 
}); 

這使得MongoDB的崩潰,這需要我跑的它重新啓動。有什麼特別的原因可以做到嗎?它不會崩潰,如果它是一個較小的值,例如10

+1

建議:@ A.Lau,你應該嘗試的MongoDB mongoimport功能導入批量數據的單杆。這裏的鏈接從JSON文件中導入數據列表:https://stackoverflow.com/questions/15171622/mongoimport-of-json-file –

回答

2

嘗試這樣

MongoClient.connect("mongodb://localhost:27017/test", function (err, db) { 
    for (let user of users){ 
     db.collection('persons').insert({ 
     id, first_name: user.name.first, lastName: user.name.last }); 

     id++; 
    } 
    }) 
+0

啊我多麼愚蠢,當然淹沒連接會破壞它。 –