Mongo数组限制

时间:2013-09-14 00:48:50

标签: node.js mongodb

我正在尝试使用本机节点库在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();
  });
});

1 个答案:

答案 0 :(得分:0)

菜鸟错误。我把db.close()放在我的回调之外,所以在查询运行/完成之前连接正在关闭。将我的db.close()移动到回调中,现在一切正常。