Как загрузить несколько документов с несколькими файлами JSON в Cloudant DB через cURL?

В настоящее время я могу поместить один файл json в документ в Cloudant, используя это: curl -X PUT 'https://username.cloudant.com/dummydb/doc3' -H "Content-Type: application/json" -d @numbers.json. У меня есть много файлов JSON, которые нужно загрузить как разные документы в одну и ту же базу данных. Как это можно сделать?


person Snigdha Gayatri    schedule 13.10.2015    source источник
comment
Не очень помогает. Нашел здесь ссылку на мою проблему .com/questions/29938435/, но решения пока нет. Документы в моем случае представляют собой файлы .json. Как мне опубликовать их как документы? @имсет   -  person Snigdha Gayatri    schedule 13.10.2015
comment
Вы хотите использовать CURL или можете использовать другие методы программирования, такие как Node.js?   -  person Alex da Silva    schedule 17.10.2015


Ответы (2)


Таким образом, вы определенно хотите использовать конечную точку _bulk_docs API Cloudant в этом сценарии. Это более эффективно (и рентабельно), если вы выполняете множество операций записи. Вы в основном POST массив, который содержит все ваши документы JSON. Вот документация по нему: https://docs.cloudant.com/document.html#bulk-operations

Если сделать еще один шаг вперед, если вы правильно структурировали файл JSON, вы можете просто загрузить файл в _bulk_docs. В cURL это будет выглядеть примерно так: curl -X POST -d @file.json <domain>/db/_bulk_docs ... (плюс тип содержимого и все остальные подробные сведения).

Еще одним шагом вперед будет использование инструмента ccurl (CouchDB/Cloudant cURL), который переносит ваши операторы cURL в Cloudant и делает их менее подробными. См. https://developer.ibm.com/clouddataservices/2015/10/19/command-line-tools-for-cloudant-and-couchdb/ из https://stackoverflow.com/users/4264864/glynn-bird, чтобы узнать больше.

Удачного коучинга!

person brobes    schedule 20.10.2015

Вы можете создать for loop и создавать документы из каждого файла JSON.

Например, в приведенной ниже команде у меня есть 4 файла JSON в моем каталоге, и я создаю 4 документа в своей базе данных people:

for file in *.json
> do
> curl -d @$file https://username:[email protected]/people/ -H "Content-Type:application/json"
> done
{"ok":true,"id":"763a28122dad6c96572e585d56c28ebd","rev":"1-08814eea6977b2e5f2afb9960d50862d"}
{"ok":true,"id":"763a28122dad6c96572e585d56c292da","rev":"1-5965ef49d3a7650c5d0013981c90c129"}
{"ok":true,"id":"763a28122dad6c96572e585d56c2b49c","rev":"1-fcb732999a4d99ab9dc5462593068bed"}
{"ok":true,"id":"e944282beaedf14418fb111b0ac1f537","rev":"1-b20bcc6cddcc8007ef1cfb8867c2de81"}
person Alex da Silva    schedule 20.10.2015