无法使用 insertMany 使用 compose for mongodb 插入记录
Unable to insert records using insertMany using compose for mongodb
我正在使用 nodejs 连接并在 compose 中插入记录 mongodb.I 当我尝试使用 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();
}
});
不使用promise无法使用.then()
。因此,您可以使用 callback
函数代替 .then()
。可以试试下面的代码
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});
});
或
您可以使用 return 承诺的 .exec()
然后可以使用 .then()
var col = db.collection('offshift');
col.insertMany(result).exec().then(.....)
我试图在管理员中插入记录。然后我更改了数据库名称并为新数据库创建了具有 read/write 权限的用户。使用正确的数据库名称和新创建的访问用户更改了我的连接字符串。这解决了问题。
您可以参考下面link了解更多详情:
https://www.compose.com/articles/avoid-storing-data-inside-admin-when-using-mongodb/
我正在使用 nodejs 连接并在 compose 中插入记录 mongodb.I 当我尝试使用 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();
}
});
不使用promise无法使用.then()
。因此,您可以使用 callback
函数代替 .then()
。可以试试下面的代码
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});
});
或
您可以使用 return 承诺的 .exec()
然后可以使用 .then()
var col = db.collection('offshift');
col.insertMany(result).exec().then(.....)
我试图在管理员中插入记录。然后我更改了数据库名称并为新数据库创建了具有 read/write 权限的用户。使用正确的数据库名称和新创建的访问用户更改了我的连接字符串。这解决了问题。
您可以参考下面link了解更多详情: https://www.compose.com/articles/avoid-storing-data-inside-admin-when-using-mongodb/