将数据库从一个主机复制到另一个主机时,我收到以下错误消息: 缺少' docs'
的JSON列表以下是我的工作:
source> curl -X GET http://127.0.0.1:5984/cozy/_all_docs?include_docs=true > cozy.dump
destination> curl -X PUT http://127.0.0.1:5984/cozy
{"ok":true}
destination> curl -d @cozy.dump -H "Content-type: application/json" -X POST http://localhost:5984/cozy/_bulk_docs
{"error":"bad_request","reason":"Missing JSON list of 'docs'"}
任何想法?
谢谢!
答案 0 :(得分:7)
这确实是版本的问题。
幸运的是,它很容易修复:只需更改转储中的第一行,例如。
{"total_rows": 8244, "offset": 0, "rows": [
到
{"docs": [
转储现在可以在更高版本中使用。
答案 1 :(得分:3)
我知道这是一个老问题,但我仍然会发布一个答案,以防其他人正在寻找解决方案。批量文档api
以特定形式接受请求。
{docs:[{},{},{}]}
docs键必须包含要批量插入的文档数组。操作
的操作 curl -X GET http://127.0.0.1:5984/cozy/_all_docs?include_docs=true > cozy.dump
是他只是存储了格式
的couchdb响应{
total_rows: 4,
offset: 0,
rows: [....]
}
进入cozy.dump文件。正如我们在上面看到的,这个文件的形式不是批量文档api可以使用的。因此错误
{"error":"bad_request","reason":"Missing JSON list of 'docs'"}
Couchdb需要docs
的JSON列表来执行批量插入。
此处需要注意的另一点是,如果您提供_id
和_rev
参数,则couchdb会执行批量更新而不是批量插入。如果您只想将一个数据库复制到另一个数据库,请使用http://wiki.apache.org/couchdb/Replication