Couchdb:使用curl从所有数据库获取所有文档

had*_*enj 2 database curl couchdb get

我需要将所有数据库中的所有文档的内容保存在一个文件中。我知道我可以使用curl从一个数据库获取所有文档:

curl -X GET http://localhost:5984/dbname/_all_docs?include_docs=true
Run Code Online (Sandbox Code Playgroud)

我对所有数据库尝试这个:

curl -X GET http://localhost:5984/_all_dbs/_all_docs?include_docs=true
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

小智 5

像这样的脚本可能会起作用:

#!/bin/bash

string=$(curl -X GET http://localhost:5984/_all_dbs | sed 's/\[//' | sed 's/\]//' | sed 's/\"//g')

IFS=', ' read -a array <<< "$string"

for database in "${array[@]}"
do
    $(curl -X GET http://localhost:5984/$database/_all_docs?include_docs=true >> allData.txt)
done
Run Code Online (Sandbox Code Playgroud)

这会将所有文档的一个请求发送到每个数据库,并将结果附加到 allData.txt,您可能需要以某种方式将数据修复为您喜欢的格式,但您将在那里拥有所有内容。

sed:s从第一个 GET 请求中删除[,]和。"