我一直在尝试在我的数据库模式中输出集合数组。 假设我的会话有效,我会得到一个 Promise{} 输出,我认为低于该输出是正常的。
.then(()=>{
return sess.getSchema('mySchema').getCollection('myCollection')
.find().fields(['name','age'])
.execute(row=>{
console.log(row)
})
})
.then(()=>{
let r = sess.getSchema('mySchema').getCollections()
console.log(r)
return r
})
但是如果我试图获得承诺中的值
let r = sess.getSchema('mySchema').getCollections()
r.then(v=>{
console.log(v)
})
它向我返回这些会话回调函数
[
{
getSession: [Function: getSession],
add: [Function: add],
addOrReplaceOne: [Function: addOrReplaceOne],
count: [Function: count],
existsInDatabase: [Function: existsInDatabase],
find: [Function: find],
getName: [Function: getName],
getSchema: [Function: getSchema],
inspect: [Function: inspect],
modify: [Function: modify],
remove: [Function: remove],
removeOne: [Function: removeOne],
replaceOne: [Function: replaceOne],
dropIndex: [Function: dropIndex],
createIndex: [Function: createIndex],
getOne: [Function: getOne]
}
]
这就是 API 的工作方式。getCollections()
方法返回一个Collection
实例的数组。每个实例都有这组特定的方法。
因此,例如,如果要获取集合名称,则可以执行以下操作:
sess.getSchema('mySchema').getCollections()
.then(collections => {
console.log(collections.map(c => c.getName()))
})
免责声明:我是MySQL X DevAPI Connector for Node的首席开发人员.js