У меня есть приблизительно 250 000 JSON-отформатированных файлов, каждый с одним объектом в нем (отформатировал, как CouchDB нравится он с _id). Что лучший способ состоит в том, чтобы импортировать их в мой удаленный сервер CouchDB как записи?
- Я нахожусь на машине Windows XP.
- У меня есть доступ в Интернет, но я не могу настроить couchDB сервер на своей локальной машине и иметь ее быть доступным WWW (ограничения брандмауэра.) так никакая легкая репликация.
Я настоятельно рекомендую вам изучить API массовой документации на вики 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/
Ура.