2017-10-12 17 views
0

MongoError:clientcursor已經在使用?司機問題?讀取mongodb遊標產生 - MongoError:clientcursor已經在使用?

const { MongoClient } = require('mongodb'); 

(async() => { 
    const db = await MongoClient.connect('mongodb://127.0.0.1/test'); 
    const cursor = db.collection('test').find(); 

    while (cursor.hasNext()) { 
    const item = await cursor.next(); 
    console.log(item); 
    } 
})().catch(console.error); 

產生以下錯誤:

{ MongoError: clientcursor already in use? driver problem? 
    at Function.MongoError.create (/node_modules/mongodb-core/lib/error.js:31:11) 
    at /node_modules/mongodb-core/lib/connection/pool.js:497:72 
    at authenticateStragglers (/node_modules/mongodb-core/lib/connection/pool.js:443:16) 
    at Connection.messageHandler (/node_modules/mongodb-core/lib/connection/pool.js:477:5) 
    at Socket.<anonymous> (/node_modules/mongodb-core/lib/connection/connection.js:331:22) 
    at emitOne (events.js:115:13) 
    at Socket.emit (events.js:210:7) 
    at addChunk (_stream_readable.js:266:12) 
    at readableAddChunk (_stream_readable.js:253:11) 
    at Socket.Readable.push (_stream_readable.js:211:10) 
    name: 'MongoError', 
    message: 'clientcursor already in use? driver problem?', 
    ok: 0, 
    errmsg: 'clientcursor already in use? driver problem?', 
    code: 12051, 
    codeName: 'Location12051' } 

版本:

有沒有人解決這個問題?

回答

0

我錯了...我忘了awaitcursor.hasNext()

正確的代碼是:

while (await cursor.hasNext()) { 
    const item = await cursor.next(); 
    console.log(item); 
}