我正在尝试使用本机节点库在 Mongo 中插入一个对象。我有一个对象,它有一个包含 1620 个对象的数组属性。在文档中,它说 mongo 支持嵌套多达 100 个我没有遇到的级别。数组中的对象只是对象,它们没有任何数组。包含所有项目的总文档大小仅为 456Kb。如果我将数组限制为 788 个对象,它们确实会保存在数据库中,但它会使应用程序崩溃。我是否遇到了节点的本机 mongo 库的问题?缺少数据库设置?
var droplist = convertOptionList(data);
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) {console.log('error'); throw err;}
var collection = db.collection('droplist');
collection.insert(droplist, function(err, objects) {
if(err) {
console.log('error');
throw err;
}
//never see this message. app crashes but with fewer items the query passes
console.log("A-Ok");
});
db.close();
});
更新
代码的工作版本。稍作更改以将 db.close() 移动到用于插入的回调内部,并防止在对象全部插入之前调用 db.close。
var droplist = convertOptionList(data);
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) {console.log('error'); throw err;}
var collection = db.collection('droplist');
collection.insert(droplist, function(err, objects) {
if(err) {
console.log('error');
throw err;
}
db.close();
});
});