CouchDB导出的文件不会导入到数据库中

时间:2014-10-08 19:12:24

标签: json couchdb

因此,为我运行脚本的朋友将couchdb数据库中的所有文档都获取到json文件。该文件看起来像这样。

{"total_rows":3,"offset":0,"rows":[
{"id":"1410","key":"1410","value":{"rev":"1-4057566831"},"doc":{"_id":"bar","_rev":"1-4057566831","name":"jim"}},
{"id":"1411","key":"1411","value":{"rev":"1-2842770487"},"doc":{"_id":"baz","_rev":"1-2842770487","name":"trunky"}}
]}

所以现在我有一个60MB的json文件,想把它放回本地托管的couchdb数据库。

curl -X POST -d @jsonfile.json 127.0.0.1:5984/db_name/_bulk_docs

不起作用。它告诉我该文件不是json。甚至指明它的json也不起作用。

所以现在我有一个json文件,我似乎无法将它放入数据库中。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

这适用于使用CouchDB 1.6.0的OSX上的curl -d @data.json -H "Content-Type: application/json" -X POST http://127.0.0.1:5984/test/_bulk_docs

可能会发生两件事。

-d会自动将内容类型设置为application / x-www-form-urlencoded。 1因此您需要加入-H 'Content-Type:application/json' -H 'Accept: application/json'

同样,_bulk_docs规范2需要的结构与视图或_all_docs的标准回复不同。

{
  "docs" : [
    {"_id":"1","name":"calvin"},
    {"_id":"2","name":"hobbes"}
  ]
}