由一个大的结果集引起的MongoDb错误

当我试图得到一个完整的结果集(~40结果)时,我实际上面临一个问题。 每个对象都有〜260个子对象引用和其他对象。

实际上,当我尝试显示30个对象时,它就起作用了。 但是,当我用40尝试它不。 每个对象都是正确的,没有数据是无效的。

看起来,我已经超过了mongoDb或默认Mongoskin(我用来访问MongoDB的库)授权的最大大小(4或16 MB),并且mongodbclosures了与我的应用程序的连接池。

那么如何增加最大文件大小或最大结果集大小来显示我所需要的一切?

编辑 :我的collections大小是8Mb(从MongoVue信息)

编辑2:我用来获取我的数据的代码:

db.collection("roadmap").find({}).toArray() 

我的db的屏幕截图: 在这里输入图像描述

编辑3 :我改变了我利用我的数据的方式

 @em.collection('roadmap').find({}, (err, resultCursor)=> nextItem = (err, item)=> if !item) return console.log item resultCursor.nextObject(nextItem) resultCursor.nextObject(nextItem) ) 

它既不工作也不工作,请求被执行,然后,我失去了我的mongodb连接。 如果我在应用程序中注释这段代码,一切都很好。

编辑4 :全堆栈跟踪,这是一个库问题比数据库问题更多

 Error: parseError occured at [object Object].<anonymous> (/var/www/xxxxxx/Ws/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:192:34) at [object Object].emit (events.js:98:17) at Socket.<anonymous> (/var/www/xxxxxx/Ws/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/connection.js:393:20) at Socket.emit (events.js:95:17) at Socket.<anonymous> (_stream_readable.js:764:14) at Socket.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:426:10) at emitReadable (_stream_readable.js:422:5) at readableAddChunk (_stream_readable.js:165:9) at Socket.Readable.push (_stream_readable.js:127:10) 

我build议你为集合“路线图”创build和索引。

  db.roadmap.ensureIndex({zone:1}); 

这只是用来比以前更快地检索数据,请参阅http://docs.mongodb.org/manual/core/indexes-introduction/

更改查找如下,因为数据已经是一个数组,所以不需要toArray函数。

  db.roadmap.find({},function(err,data){ if(err){ console.log(err); } console.log(data); ) 

这将查找路标集合中的所有数据。当数据集很大时,将使用索引。 希望这可以帮助。

这个错误是由mongoskin下的mongo节点驱动程序发出的。 在连接文件中,有几个地方可以发出这个错误。 要看到实际的错误,给连接一个logging器,它会打印的东西。 这将告诉你在连接中你有什么问题,以及它是什么。 请注意,mongoskin正在使用驱动程序的版本1.4.4,所以如果它是一个错误,他们可能已经修复它。