Node.js에서 couchBase에 대한 사용자 별 뷰를 만들려고합니다. 여기에 내가 디자인 문서 design_users가 카우치베이스 주식회사에 생성되지만 다음과 같은 컬couchBase에서 뷰를 생성하는 동안 json에서 입력 변수를 키로 설정하는 방법
curl -H "Content-Type: application/json" -X POST -d '{"userId": "uidam231"}' http://localhost:3000/todo/id
을 실행에
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)
}
);
})
이 코드입니다, 예상보기 (uidam231가) 없습니다. 콘솔에 오류가 없습니다.
json에서 변수 req.body.userId가 할당 된 것이 원인 일 가능성이 있습니다. 뷰 이름 ("$ req.body.userId":)과 필터 기준 (doc.toUserName == req.body.userId)은 모두 전달 된 변수가 필요합니다.
제안 사항을 알려주십시오.
안녕하세요 @avsej : 나는이 부분을 이해합니다. 내가 달성하고자하는 것은 이것이다. 새로운 사용자 등록에 대해 말하면, (사용자 고유의) 뷰를 couchBase에 추가하고 싶다. 나는 또한 각 사용자를 기반으로보기를 추가하는 스크립트를 실행할 수 있다고 생각합니다. 본질적으로 이는 쿼리가 아닙니다. 지도 함수가 숫자 또는 문자열과 같은 특정 값을 확인하는 뷰입니다. Node.js에서 뷰가 삽입됩니다. (새로 등록 된 각 사용자 당 한 번만) – user1384205
이 경우 사용자 이름을 리터럴로'req.body.userId' 대신'map()'함수 본문으로 대체해야합니다. 보기 이름. 그러나 당신은 당신이 업데이트/단일보기를 추가 할 수 없다는 것을 명심해야한다. 매번 전체 설계 문서를 덮어 써야한다. 어쩌면 N1QL로 문제를 해결할 수 있을까요? – avsej
NiQL은 뷰에 비해 대기 시간이 길어 보입니다. couchbase lite로 클라이언트에서 완화 할 계획입니다. 나는 여전히 위의 문제에서 문자 그대로의 부분으로 변환하는 것을 이해할 수 없다. – user1384205