2017-06-07 10 views
1

nodejsを使用してmongodb用のレコードに接続して挿入します。insertManyを使用してレコードを保存しようとすると以下のエラーが発生します。以下はmongodb用のcomposeを使用してinsertManyを使用してレコードを挿入できません

(node:10140) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: Writes to conf ig servers must have batch size of 1, found 23

私のコードスニペットです:

MongoClient.connect(url, function(err, db) { 

    if(err){ 
    console.log('Error is ' + err); 
    } 
    else{ 
    console.log("Connected correctly to server"); 
    try { 
    var col = db.collection('offshift'); 
     col.insertMany(result).then(function(result){ 
     res.json({message:'Data saved succesfully!',error_code:0, data: result}); 
     }); 

    } catch (e) { 
     console.log(e); 
    } 
    db.close(); 
    } 
}); 

答えて

0

を使用することができますを試すことができます。その後、DB名を変更し、新規DBの読み書き権限を持つユーザを作成しました。正しいDB名と新しく作成されたユーザーのアクセス用に接続文字列を変更しました。これで問題は解決しました。

詳しくは、次のリンクを参照してください。 https://www.compose.com/articles/avoid-storing-data-inside-admin-when-using-mongodb/

0

あなたが.then()を使用することができない約束を使用しない場合。したがって.then()の代わりにcallback機能を使用することができます。怒鳴るコード

var col = db.collection('offshift'); 
    col.insertMany(result, function(error, result){ 
     if(error){ 
      console.log('Error is on insert', error); 
     } else 
      res.json({message:'Data saved succesfully!',error_code:0, data: result}); 
}); 

OR

あなたが約束を返す.exec()を使用することができますし、私は管理者にレコードを挿入しようとしていた.then()

var col = db.collection('offshift'); 
     col.insertMany(result).exec().then(.....) 
関連する問題