我想從Node.js在couchBase上創建用戶特定的視圖。這裏是我的代碼有如何設置輸入變量作爲鍵在json中創建視圖時在couchBase
app.post("/todo/:id", function(req, res){
console.log("hey" + req.body.userId)
baseview.setDesign('design_users', {
"$req.body.userId": {
'map': "function (doc, meta) { if(doc.toUserName == req.body.userId) {emit(doc.status, doc.title);}}"
}
},
function(err, result){
if (err != null) console.log(err);
else res.send(result)
}
);
})
在雖然在couchBase創建設計文件design_users執行以下捲曲
curl -H "Content-Type: application/json" -X POST -d '{"userId": "uidam231"}' http://localhost:3000/todo/id
,預期視圖(uidam231)不是。控制檯上沒有錯誤。
我懷疑在json中變量req.body.userId的分配可能是原因。請注意,視圖名稱(「$ req.body.userId」:)和過濾條件(doc.toUserName == req.body.userId)都需要傳入變量。
有什麼建議嗎?
@avsej你好:我理解這部分內容。我想要實現的是這個,讓我們說一個新的用戶註冊,我想添加(用戶特定的)視圖到couchBase。我想我也可以運行腳本來添加基於每個用戶的視圖。基本上,這不是一個查詢。只是一個視圖,map函數檢查某個值,比如說一個數字或字符串。只是從Node.js插入視圖(僅針對每個新註冊用戶一次) – user1384205
在這種情況下,您必須將username替換爲'map()'函數體,而不是'req.body.userId',並且還將其替換爲查看名稱。但是你必須記住,你不能更新/添加單一視圖,你必須每次覆蓋整個設計文檔。也許N1QL會解決你的問題? – avsej
NiQL似乎比視圖具有更高的延遲。我打算用客戶端上的couchbase lite減輕差異。我仍然不能轉換成上述問題中的文字部分。 – user1384205