由一个大的结果集引起的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,所以如果它是一个错误,他们可能已经修复它。
- mongoDB插入和process.nextTick
- 如何使用asynchronous函数?
- Node.js摩卡unit testing错误重新:蒙哥马与Mockgoose嘲笑,“错误设置集合:会话TTL索引”
- mongoose:如何获取查询的string表示
- 在MongoDB数组中发送,以获取MongoDB中不同的集合的结果
- Sinon / Node / Express / Mongo – TypeError当试图模拟Mongo DB.collection函数
- 在mongoose中使用时,“修剪”的含义是什么?
- Mongoose TypeError:在实例化模式types的对象时,对象不是一个函数
- 用自定义的条件在mongoose中查找