将json导入couchdb,使每个对象成为一个文档

时间:2016-02-15 18:15:36

标签: json curl import couchdb nosql

我有一个JSON文件,格式如下:

"rows": [
        {
            "key": [
                null,
                null,
                "dco_test_group",
                "3d3ce6270fdfuashge12e1d41af93179",
                "test_djougou"
            ],
            "value": {
                "lat": "31.538208354844658",
                "long": "91.98762580927113"
            }
        },
        {
            "key": [
                null,
                null,
                "dco_test_group",
                "4cda7jhsadgfs6123hsdaa9069ade2",
                "test_ouake"
            ],
            "value": {
                "lat": "59.696798503352547",
                "long": "11.6626995307082464"
            }
        },

我想导入文件,使rows中的每个对象都成为couchdb文档。现在,我有以下代码:

curl -X PUT --data-binary @"C:\Users\me\Dropbox (Personal)\Research\Folder\location.json" http://127.0.0.1:5984/db/document_name

这会添加document_name内的所有数据。

如果我尝试:

curl -X PUT --data-binary @"C:\Users\me\Dropbox (Personal)\Research\Folder\location.json" http://127.0.0.1:5984/db

创建了一个新的数据库但没有添加任何数据。如何编辑代码以获得所需的输出?

更新1

所有数据都在记录中是否重要?是否有类似于5种常规形式的RDB的规则?

1 个答案:

答案 0 :(得分:3)

使用bulk-document-api。以下是docs>>的示例。 https://wiki.apache.org/couchdb/HTTP_Bulk_Document_API#Modify_Multiple_Documents_With_a_Single_Request

$ DB="http://127.0.0.1:5984/mydb"
$ curl -H "Content-type:application/json" -d '{"docs":[{"key":"baz","name":"bazzel"},{"key":"bar","name":"barry"}]}' -X POST $DB/_bulk_docs
$ curl -H "Content-type:application/json" -d @your_file.json -X POST $DB/_bulk_docs

请注意,所有文档都是' docs中的项目。阵列。