怎么理解 mongodb中返回的 command cursor?sos
发布于 6 年前 作者 Magic-zhu 2088 次浏览 来自 问答
//获取数据中所有的集合
router.get("/listAllCollections", async (ctx, next) => {
    let {query} = ctx;
    const url = 'mongodb://'+query.host+':'+query.port;
    const dbName = query.dbName;
    await MongoClient.connect(url).then(async (client, err) => {
        const db = client.db(dbName);
        await db.listCollections().toArray().then((docs) => {
            return ctx.body = {
                statusCode: 200,
                msg: "获取成功",
                data: docs
            }
        }, (err) => {
            console.log(err);
            return ctx.body = {
                statusCode: 403,
                msg: "数据库错误"
            }
        })
    })
});

db.listCollections() 官方文档 上写的是返回一个 command cursor ,虽然能用了 但是不太明白如何更好的理解这个东西 。

2 回复

cursor = await db.listCollections() 應該是 指令記錄 他返回的值只是操作結果 一些設定值還有你要的輸出吧

我大概理解你的問題了,以php的mongo client來看,這個cursor可以理解為array的index,當呼叫類似next方法,可以使index+1,進而透過其他方法取得其內容。

回到顶部