2011-09-09 10 views
6

mam doc Wykonanie:CouchDB: włóż nową tablicę do dokumentu

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

co chcę osiągnąć jest dodanie informacji do graczu tablicę, aby mieć mój doc patrząc jak ten

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

jest sposób na to zrobić z html PUTs?

dziękuję!

Odpowiedz

7

Najprostszą odpowiedzią jest pobranie dokumentu JSON, /example_db/00001.74365CF0449457AA5FB52822DBE1F22A, a następnie zmodyfikowanie zawartości, a następnie PUT z powrotem do serwera, z powrotem w /example_db/00001.74365CF0449457AA5FB52822DBE1F22A.

CouchDB obsługuje technikę skrótów o nazwie update function. Zasada jest taka sama, z tym że CouchDB weźmie dokument, wprowadzi wszelkie wprowadzone zmiany, a następnie zapisze je ponownie — wszystkie po stronie serwera.

Proponuję zacząć od poprzedniej, prostszej techniki. Następnie możesz w razie potrzeby zreorganizować funkcję _update po stronie serwera.