0

我一直在尝试在我的数据库模式中输出集合数组。假设我的会话有效,我会得到一个我认为正常的 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]
  }
]
4

1 回答 1

0

这就是 API 的工作方式。该方法返回一个实例getCollections()数组。Collection每个实例都有特定的方法集。

因此,例如,如果您想获取集合名称,您可以执行以下操作:

sess.getSchema('mySchema').getCollections()
  .then(collections => {
    console.log(collections.map(c => c.getName()))
  })

免责声明:我是 MySQL X DevAPI Connector for Node.js 的主要开发人员

于 2020-05-20T07:53:18.203 回答