Пакетный импорт документов JSON в Apache CouchDb - PullRequest
14 голосов
/ 16 июля 2010

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

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

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

1 Ответ

18 голосов
/ 17 июля 2010

Я настоятельно рекомендую вам взглянуть на API массовых документов в wiki couchdb: 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, он может выглядеть следующим образом:

curl -H "Content-Type: application/json" --data-binary @/home/xxx/data.json https://usr:pwd@host:5984/someDatabase/_bulk_docs/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...