2010-07-16 12 views
13

Ho circa 250.000 file in formato JSON, ciascuno con un oggetto (formattato come piace a CouchDB con _id). Qual è il modo migliore per importarli nel mio server CouchDB remoto come record?Importazione batch di documenti json su Apache CouchDb

-Sono su una macchina Windows XP.

-Ho accesso a Internet ma non riesco a configurare un server couchDB sul mio computer locale e devo essere accessibile al WWW (vincoli del firewall), quindi nessuna replica facile.

risposta

17

Consiglio vivamente che si guarda in API doc massa nel wiki CouchDB: http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

In sostanza, si effettua una richiesta POST a /someDatabase/_bulk_docs che assomiglia a questo:

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

Proprio come qualsiasi altra richiesta POST, se non includi le proprietà _id, couchdb le genererà per te.

È possibile utilizzare questa stessa operazione per aggiornare una serie di documenti: basta includere la loro proprietà _rev. E se vuoi cancellare qualcuno dei documenti che stai aggiornando, aggiungi una proprietà "_deleted": true al documento.

Se si dispone di un file JSON con i tuoi documenti e uso ricciolo, potrebbe apparire come:

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

Cin cin.

+2

lieve correzione alla grande risposta di Sam. Per le eliminazioni, fare _deleted: true, not _delete. –

+0

Grazie Chris - lo digito sempre. Risolto nella risposta. –

+0

Link più recente per i documenti: http://docs.couchdb.org/en/2.0.0/api/database/bulk-api.html#db-bulk-docs –

Problemi correlati