首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MyCouch扩展调用的更新函数

从MyCouch扩展调用的更新函数
EN

Stack Overflow用户
提问于 2019-10-29 09:37:23
回答 1查看 153关注 0票数 0

我正在尝试从MyCouch调用更新函数。My沙发的文档只报告了一个过时的示例,其中使用了_design文档上的Post方法。但是如何使用更新函数

代码语言:javascript
复制
{
  "_id": "_design/artists",
  "language": "javascript",
  "views": {
    "albums": {
        "map": "function(doc) {  if(doc.$doctype !== 'artist') return;  emit(doc.name, doc.albums);}" 
    }
  }
};

client.Documents.Post(designDocumentAsJson);

如何在推送新文档的_design couchDB上执行更新函数?

couchDB文档讲述了这个调用。

代码语言:javascript
复制
PUT /{db}/_design/{ddoc}/_update/{func}/{docid}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 14:10:42

PUT /{db}/_design/{ddoc}/_update/{func}/{docid}

代码语言:javascript
复制
Executes update function on server side for the specified document.
Parameters: 

    db – Database name
    ddoc – Design document name
    func – Update function name
    docid – Document ID

可以像下面这样将设计文档插入到db:https://docs.couchdb.org/en/stable/api/ddoc/render.html#db-design-design-doc-update-update-name

代码语言:javascript
复制
{
  "_id": "_design/albums",
  "language": "javascript",
  "updates": {
    "addAlbum": "function(doc, req) {\n    if (!doc){\n      return [null, {'code': 400,\n                     'json': {'error': 'missed',\n                              'reason': 'no document to update'}}]\n    } else {\n        var body = JSON.parse(req.body);\n        doc.albums.push(body.album);\n        return [doc, {'json': {'status': 'ok'}}];\n    }\n}\n"
  }
}

职能(没有串线):

代码语言:javascript
复制
function(doc, req) {
    if (!doc){
      return [null, {'code': 400,
                     'json': {'error': 'missed',
                              'reason': 'no document to update'}}]
    } else {
        var body = JSON.parse(req.body);
        doc.albums.push(body.album);
        return [doc, {'json': {'status': 'ok'}}];
    }
}

示例文档:

代码语言:javascript
复制
{
  "_id": "albumsId1",
  "albums": [
    1
  ]
}

后Api

请求:

代码语言:javascript
复制
POST http://localhost:5984/test/_design/albums/_update/addAlbum/albumsId1
Content-Type:application/json
Accept:application/json

{"album":2}

响应:

代码语言:javascript
复制
{
    "status": "ok"
}

更新后的doc

代码语言:javascript
复制
{
  "_id": "albumsId1",
  "_rev": "19-7edb16db3bae388685f554138d562bd0",
  "albums": [
    1,
    2
  ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58604711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档