본문 바로가기

나는개발자다/cloudant

couchDB view 만들 때 주의점.

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