mysql-xdevapi getCollections 承诺返回值

Posted

技术标签:

【中文标题】mysql-xdevapi getCollections 承诺返回值【英文标题】:mysql-xdevapi getCollections promise return value 【发布时间】:2020-05-20 06:38:07 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

因此,例如,如果您想获取集合名称,您可以这样做:

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

免责声明:我是 mysql X DevAPI Connector for Node.js 的首席开发人员

【讨论】:

这应该可以,谢谢朋友!没想到,昨天才用的。 @ruiquelhas,我是xdevapi的新手,你能帮忙看看***.com/questions/62853011/… @Jeb50 我在那里写了一些想法。

以上是关于mysql-xdevapi getCollections 承诺返回值的主要内容,如果未能解决你的问题,请参考以下文章