gpt4 book ai didi

node.js - 由大结果集引起的 MongoDb 错误

转载 作者:可可西里 更新时间:2023-11-01 10:30:11 25 4
gpt4 key购买 nike

在尝试获取完整结果集(~40 个结果)时,我实际上遇到了一个问题。每个对象都有约 260 个子引用和其他对象。

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

似乎我已经超过了 mongoDb 或默认的 Mongoskin(我用来访问 mongodb 的库)授权的最大大小(4 或 16 mb),并且 mongodb 关闭了与我的应用程序的池连接。

那么如何增加最大文档大小或最大结果集大小,以显示我需要的所有内容?

编辑:我的收藏大小是 8Mb(来自 MongoVue 信息)

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

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

我的数据库截图: enter image description here

编辑 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)

最佳答案

我建议您为集合“路线图”创建和索引。

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

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

修改Find如下,不需要toArray函数,因为数据已经是数组了。

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

这样就找到了roadmap集合中的所有数据。当数据集很大时使用索引。希望这会有所帮助。

关于node.js - 由大结果集引起的 MongoDb 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27439661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com