怎么理解 mongodb中返回的 command cursor?sos
//获取数据中所有的集合
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,進而透過其他方法取得其內容。