CouchDB: вставить новый массив в документ - PullRequest
6 голосов
/ 09 сентября 2011

У меня есть документ из:

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

, чего я хочу добиться, это добавить информацию в массив playerinfo, чтобы мой документ выглядел следующим образом

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

тамспособ сделать это с помощью HTML PUT?

спасибо!

1 Ответ

7 голосов
/ 09 сентября 2011

Простой ответ - извлечь документ JSON, /example_db/00001.74365CF0449457AA5FB52822DBE1F22A, затем изменить его содержимое, а затем ПОСТАВИТЬ его обратно на сервер обратно в /example_db/00001.74365CF0449457AA5FB52822DBE1F22A.

CouchDB поддерживает метод ярлыков, называемый функцией обновления . Принцип тот же, за исключением того, что CouchDB возьмет документ, внесет любые внесенные вами изменения, а затем сохранит его снова - все на стороне сервера.

Я предлагаю вам начать с первой, более простой техники. Затем вы можете при необходимости выполнить рефакторинг для использования функции _update на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...