[英]Update functions called from MyCouch Extension
我正在嘗試從 MyCouch 調用更新函數。 Mycouch 的文檔僅報告了_design
文檔上使用 Post 方法的過時示例。 但是如何使用更新 function
{
"_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 上執行更新 function 推送新文檔?
couchDB 文檔講述了這個調用
PUT /{db}/_design/{ddoc}/_update/{func}/{docid}
放置 /{db}/_design/{ddoc}/_update/{func}/{docid}
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
您可以將如下設計文檔插入數據庫: https://docs.couchdb.org/en/stable/api/ddoc/render.html#db-design-design-doc-update-update-name
{
"_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"
}
}
function(無串化):
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'}}];
}
}
示例文檔:
{
"_id": "albumsId1",
"albums": [
1
]
}
Api之后
要求:
POST http://localhost:5984/test/_design/albums/_update/addAlbum/albumsId1
Content-Type:application/json
Accept:application/json
{"album":2}
回復:
{
"status": "ok"
}
更新后的文檔
{
"_id": "albumsId1",
"_rev": "19-7edb16db3bae388685f554138d562bd0",
"albums": [
1,
2
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.