2011-09-09 14 views
6

ho un documento composto da:CouchDB: inserire un nuovo array in un documento

{ 
"_id": "00001.74365CF0449457AA5FB52822DBE1F22A", 
"_rev": "1-1b976f3adb75c220aff28b4c69f41e18", 
"game": "UT411", 
"guid": "74365CF0449457AA5FB52822DBE1F22A", 
"sid": "00001", 
"playerinfo": [ 
    { 
     "timestamp": "1315503699.777494167", 
     "name": "Elisa", 
     "ip": "87.66.181.166", 
     "gear": "FMAOSTA", 
     "weapmodes": "01000110220000020000", 
     "isp": "ADSL-GO-PLUS", 
     "geoloc": "Hotton:50.266701:5.450000", 
     "sid": "00001" 
    } 
    ] 
} 

quello che voglio ottenere è l'aggiunta di informazioni di playerinfo array in modo da avere il mio doc cercando in questo

{ 
"_id": "00001.74365CF0449457AA5FB52822DBE1F22A", 
"_rev": "1-1b976f3adb75c220aff28b4c69f41e18", 
"game": "UT411", 
"guid": "74365CF0449457AA5FB52822DBE1F22A", 
"sid": "00001", 
"playerinfo": [ 
    { 
     "timestamp": "1315503699.777494167", 
     "name": "Elisa", 
     "ip": "87.66.181.166", 
     "gear": "FMAOSTA", 
     "weapmodes": "01000110220000020000", 
     "isp": "ADSL-GO-PLUS", 
     "geoloc": "Hotton:50.266701:5.450000", 
     "sid": "00001" 
    }, 
    { 
     "timestamp": "1315503739.234334167", 
     "name": "Elisa-new", 
     "ip": "87.66.181.120", 
     "gear": "FMAGGGA", 
     "weapmodes": "01000110220000020000", 
     "isp": "ADSL-GO-PLUS", 
     "geoloc": "Hotton:50.266701:5.450000", 
     "sid": "00001" 
    } 
    ] 
} 

c'è un modo per farlo con i PUT in html?

grazie!

risposta

7

La semplice risposta è recuperare il documento JSON, /example_db/00001.74365CF0449457AA5FB52822DBE1F22A quindi modificare il contenuto, quindi riportarlo sul server, di nuovo in /example_db/00001.74365CF0449457AA5FB52822DBE1F22A.

CouchDB supporta una tecnica di collegamento, denominata update function. Il principio è lo stesso, ad eccezione di CouchDB che prenderà il documento, apporterà le eventuali modifiche da implementare, quindi lo memorizzerà di nuovo — sul lato server.

Ti suggerisco di iniziare con la tecnica precedente, più semplice. Successivamente, puoi refactoring per utilizzare la funzione _update sul lato server quando necessario.

Problemi correlati