2010-07-16 19 views
13

Her birinde tek bir nesne bulunan yaklaşık 250.000 JSON biçimindeki dosyam var (yalnızca CouchDB'nin _id ile nasıl beğendiği biçimlendirilmiş). Bunları uzak CouchDB sunucusuna kayıt olarak almanın en iyi yolu nedir?Batch json belgelerini Apache CouchDb'ye aktarma

Bir windows xp makinesindeyim.

-Internet erişimim var ancak yerel makinemde bir couchDB sunucusu kuramıyorum ve WWW erişilebilir olmasını (güvenlik duvarı kısıtlamaları.) Bu yüzden kolay bir çoğaltma yapamıyorum.

cevap

17

ben son derece CouchDB wiki toplu doc ​​API içine bakmak öneririm: Sadece herhangi gibi

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

: Temelde http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API

, şuna benzer /someDatabase/_bulk_docs POST isteği yapmak Diğer POST isteği, _id özelliklerini içermezseniz, couchdb bunları sizin için üretecektir.

Aynı işlemi, bir grup dokümanı güncellemek için de kullanabilirsiniz: sadece _rev özelliğini ekleyin. Ve güncelleştirdiğiniz belgelerin herhangi birini silmek isterseniz, belgeye "_deleted": true özelliğini ekleyin.

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

Cheers: Eğer belge ve kullanım Kıvrık bir json dosyası varsa

, bu gibi görünebilir. Sam'in mükemmel cevabı

+2

hafif düzeltme. Silmeler için _deleted: true, _delete değil. –

+0

Teşekkürler Chris - Ben her zaman bunu yazarım. Cevapta düzeltildi. –

+0

Dokümanlara daha yeni bağlantı: http://docs.couchdb.org/en/2.0.0/api/database/bulk-api.html#db-bulk-docs –