批量导入json文档到Apache CouchDb

Nat*_*ate 14 apache json couchdb

我有大约250,000个JSON格式的文件,每个文件中都有一个对象(格式化CouchDB喜欢它的方式是_id).将这些作为记录导入我的远程CouchDB服务器的最佳方法是什么?

- 我在Windows XP机器上.

- 我有互联网访问权限,但我不能在我的本地计算机上设置couchDB服务器并使其可以访问WWW(防火墙限制.)所以不容易复制.

Sam*_*bee 18

我强烈建议您查看couchdb wiki中的批量文档API:http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

基本上,你发出一个POST请求/someDatabase/_bulk_docs,如下所示:

{
  "docs": [
    { "_id": "awsdflasdfsadf", "foo": "bar" },
    { "_id": "cczsasdfwuhfas", "bwah": "there" },
    ...
  ]
}
Run Code Online (Sandbox Code Playgroud)

就像任何其他POST请求一样,如果您不包含_id属性,couchdb将为您生成它们.

您可以使用相同的操作来更新一堆文档:只需包含它们的_rev属性.如果要删除要更新的任何文档,请将"_deleted": true属性添加到文档中.

如果你的文件中有一个json文件并使用curl,它可能看起来像:

curl -H "Content-Type: application/json" --data-binary @/home/xxx/data.json https://usr:pwd@host:5984/someDatabase/_bulk_docs/
Run Code Online (Sandbox Code Playgroud)

干杯.

  • 略微纠正Sam的好回答.对于删除,请执行_deleted:true,而不是_delete. (2认同)