couchDB에서 view를 만들 때 반드시 주의할 점이 있다.
말도 안 되는것때문에 뻘짓거리 많이 한다.
1. 특수문자
보통 user-id 나 user_id 라고 db의 컬럼 이름을 정의하는데 user-id는 view 조회에서 실행되지 않는다.
현재 TEST용 view 소스이다.
{
"_id": "_design/views",
"_rev": "3-391ab363e9d091c048b5362466a15726",
"views": {
"user-id": {
"map": "function(doc) {\n if(doc.user-id){\n emit(doc.user-id, doc);\n }\n}"
},
"client": {
"map": "function(doc) {\n if(doc.client){\n emit(doc.client, doc);\n }\n}"
},
"id": {
"map": "function(doc) {\n if(doc._id){\n emit(doc._id, doc);\n }\n}"
}
}
}
위 소스에서
빨간색 user-id는 view의 이름이다.
파란색 user-id는 document의 key 이름이다. <-- 작동되지 않는다.
java와 연결시키면
class Document{
private String user-id;
}
이렇게 할 경우는 아래와 같이 실행된다.
{"total_rows":0,"offset":0,"rows":[ ]}
2. \n 입력할 것
cloudand.com에서 view를 만들 때 주의할 점이 있다. \n 표시이다.
아래 소스에서 보면
"client": {
"map": "function(doc) {\n if(doc.client){\n emit(doc.client, doc);\n }\n}"
}
\n 표시가 있다. 소스 작성할 때 Enter를 입력하면 에러가 발생한다. 반드시 \n 표시를 해 줘야 한다.
그냥 위 소스를 기본으로 필요한 부분만 수정하거나 다른 편집기를 이용해서 작성하면 된다.
'나는개발자다 > cloudant' 카테고리의 다른 글
Cloudand에서 비밀번호 주의사항. (0) | 2013.09.13 |
---|