完全な結果セット(〜40の結果)を取得しようとすると、実際に問題に直面しています。各オブジェクトには、最大 260 の子参照と他のオブジェクトがパックされています。
実際、30 個のオブジェクトを表示しようとすると、うまくいきます。しかし、40で試してみると、そうではありません。各オブジェクトは正しく、無効なデータはありません。
mongoDb またはデフォルトで Mongoskin (mongodb へのアクセスに使用するライブラリ) によって承認された最大サイズ (4 または 16 mb) を超えたようで、mongodb はアプリケーションへのプール接続を閉じます。
では、ドキュメントの最大サイズまたは結果セットの最大サイズを増やして、必要なものすべてを表示するにはどうすればよいでしょうか?
EDIT:私のコレクションサイズは8Mbです(MongoVue情報から)
EDIT 2: データを取得するために使用するコード:
db.collection("roadmap").find({}).toArray()
私のデータベースのスクリーンショット:
EDIT 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)