获取 couchDb 中所有现有分区的列表

Get a list of all existing partitions in couchDb

我有一个分区的 CouchDB 数据库。是否有任何查询来获取特定数据库中所有分区的列表?我在 CouchDb 文档中没有找到类似的内容。

没有 只是 列出所有数据库的分区状态的端点,但是 /_dbs_info 端点已经足够接近了,只需进行一些处理。

这是我使用 nano and nodejs10 编写的简单脚本。脚本显示数据库名称,如果数据库已分区,则以星号 (*) 为前缀。

const nano = require("nano")("http://user:password@localhost:5984");

(async () => {
    console.log("db list (* = partitioned)");
    (
        await nano.request({
            method: "POST",
            path: "/_dbs_info",
            body: { keys: await nano.db.list() },
        })
    ).forEach((doc) => console.log(`${doc.info.props.partitioned ? "*" : " "} ${doc.key}`));
})();

我说幼稚是因为这个脚本没有考虑到诸如拥有大量数据库的系统、智能安全、props 是否存在等问题 - 所以 YMMV。

考虑阅读 CouchDB 开发邮件列表中的这个主题:https://lists.apache.org/thread.html/re1791021d16acc04adaf414eba31950063065e1e8761f0307dcc8bfd%40%3Cdev.couchdb.apache.org%3E

简而言之,这个没有端点,但是你可以做一个视图或者增量遍历分区。