开发者

CouchDB: insert a new array into a document

开发者 https://www.devze.com 2023-04-03 22:18 出处:网络
I have a doc made of: { "_id": "00001.74365CF0449457AA5FB52822DBE1F22A", "_rev": "1-1b976f3adb75c220aff28b4c69f41e18",

I have a doc made of:

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

what i want to achieve is adding informations to playerinfo array in order to have my doc looking like this

{
"_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.2667开发者_运维问答01:5.450000",
       "sid": "00001"
   }
   ]
}

Is there a way of doing this with HTML PUTs?

Thanks!


The simple answer is to fetch the JSON document, /example_db/00001.74365CF0449457AA5FB52822DBE1F22A then modify the contents, then PUT it back to the server, back in /example_db/00001.74365CF0449457AA5FB52822DBE1F22A.

CouchDB supports a shortcut technique, called an update function. The principle is the same, except CouchDB will take the document, make whatever changes you implement, then store it again—all on the server side.

I suggest that you start with the former, simpler technique. Next, you can refactor to use the server-side _update function when necessary.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号