2010-07-16 43 views
13

Tengo aproximadamente 250,000 archivos con formato JSON, cada uno con un objeto (formateado cómo a CouchDB le gusta con _id). ¿Cuál es la mejor manera de importar estos archivos en mi servidor CouchDB remoto como registros?Importación por lotes de documentos json a Apache CouchDb

-Estoy en una máquina con Windows XP.

-Tengo acceso a Internet, pero no puedo configurar un servidor couchDB en mi máquina local y tenerlo accesible en la WWW (restricciones de firewall.) Por lo que no es fácil la replicación.

Respuesta

17

Yo sugeriría que usted busca en la API doc mayor en el couchdb wiki: http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

Básicamente, se crea una solicitud POST a /someDatabase/_bulk_docs que tiene este aspecto:

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

Al igual que cualquier otra solicitud POST, si no incluye las propiedades _id, couchdb las generará por usted.

Puede usar esta misma operación para actualizar una gran cantidad de documentos: solo incluya su propiedad _rev. Y si desea eliminar cualquiera de los documentos que está actualizando, agregue una propiedad "_deleted": true al documento.

Si usted tiene un archivo JSON con sus documentos y el uso rizo, podría parecerse a:

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

Saludos.

+2

corrección leve a la gran respuesta de Sam. Para eliminaciones, do _deleted: true, not _delete. –

+0

Gracias Chris - Siempre escribo ese. Reparado en la respuesta. –

+0

Enlace más reciente a los documentos: http://docs.couchdb.org/en/2.0.0/api/database/bulk-api.html#db-bulk-docs –

Cuestiones relacionadas