2017-10-13 21 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

啊我多么愚蠢,当然淹没连接会破坏它。 –