2011-09-09 10 views
6

Tengo un documento compuesto por:CouchDB: insertar una nueva matriz en 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" 
    } 
    ] 
} 

lo que quiero lograr es la adición de información a jugador gama con el fin de tener mi doc con este aspecto

{ 
"_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" 
    } 
    ] 
} 

¿hay alguna forma de hacerlo con las PUT html?

gracias!

Respuesta

7

La respuesta simple es buscar el documento JSON, /example_db/00001.74365CF0449457AA5FB52822DBE1F22A, luego modificar el contenido, luego PONERLO nuevamente en el servidor, de vuelta en /example_db/00001.74365CF0449457AA5FB52822DBE1F22A.

CouchDB admite una técnica de acceso directo, llamada update function. El principio es el mismo, excepto que CouchDB tomará el documento, realizará los cambios que implemente y luego lo almacenará de nuevo — todo en el lado del servidor.

Sugiero que empiece con la técnica anterior, más simple. A continuación, puede refactorizar para usar la función _update del lado del servidor cuando sea necesario.

Cuestiones relacionadas