В настоящее время я могу поместить один файл json в документ в Cloudant, используя это: curl -X PUT 'https://username.cloudant.com/dummydb/doc3' -H "Content-Type: application/json" -d @numbers.json
. У меня есть много файлов JSON, которые нужно загрузить как разные документы в одну и ту же базу данных. Как это можно сделать?
Как загрузить несколько документов с несколькими файлами JSON в Cloudant DB через cURL?
Ответы (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, чтобы узнать больше.
Удачного коучинга!
Вы можете создать 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"}