Пакетный импорт json-документов в Apache CouchDb

У меня есть приблизительно 250 000 JSON-форматированных файлов, каждый с одним объектом в нем (отформатирован только, как CouchDB ему нравится с _id). Какой лучший способ импортировать их на мой удаленный CouchDB-сервер в качестве записей?

-Я на машине Windows XP.

- У меня есть доступ в Интернет, но я не могу настроить couchDB-сервер на моем локальном компьютере и иметь доступ к WWW (ограничения брандмауэра.), поэтому нет легкой репликации.

Ответы

Ответ 1

Я бы очень хотел, чтобы вы заглянули в массив doc API в wiki: http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

В принципе, вы отправляете запрос POST на /someDatabase/_bulk_docs, который выглядит следующим образом:

{
  "docs": [
    { "_id": "awsdflasdfsadf", "foo": "bar" },
    { "_id": "cczsasdfwuhfas", "bwah": "there" },
    ...
  ]
}

Как и любой другой запрос POST, если вы не включаете свойства _id, couchdb будет генерировать их для вас.

Вы можете использовать эту же операцию для обновления кучи документов: просто добавьте их свойство _rev. И если вы хотите удалить любой из документов, которые вы обновляете, добавьте в документ свойство "_deleted": true.

Если у вас есть файл json с вашими документами и используйте завиток, он может выглядеть так:

curl -H "Content-Type: application/json" --data-binary @/home/xxx/data.json https://usr:[email protected]:5984/someDatabase/_bulk_docs/

Приветствия.