【问题标题】:CouchDB: insert a new array into a documentCouchDB:将新数组插入文档
【发布时间】:2011-09-09 09:46:47
【问题描述】:

我有一个文档:

{
"_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 PUTs 做到这一点?

谢谢!

【问题讨论】:

    标签: arrays couchdb add


    【解决方案1】:

    简单的答案是获取 JSON 文档,/example_db/00001.74365CF0449457AA5FB52822DBE1F22A,然后修改内容,然后将其放回服务器,返回 /example_db/00001.74365CF0449457AA5FB52822DBE1F22A

    CouchDB 支持一种快捷方式,称为update function。原理是一样的,只是 CouchDB 会获取文档,进行您实施的任何更改,然后再次存储它——所有这些都在服务器端。

    我建议您从前一种更简单的技术开始。接下来,您可以在必要时进行重构以使用服务器端的 _update 函数。

    【讨论】:

      猜你喜欢
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      相关资源
      最近更新 更多