Choi의 고유결계

mongoDB 사용하다보니 생긴 불편한점 및 주의해야할점 본문

DB/Mongo

mongoDB 사용하다보니 생긴 불편한점 및 주의해야할점

믿을수없는맛 2019. 1. 17. 18:08
반응형

현재 나는 블로그를 만들고있는중이다 몽고디비를 활용하여 게시글을 저장하고 조회하는중이다.

지금은 게시물 검색을 구현하는중 $text 인덱스를 적용하여 복잡하게 jsp 내에서 코드를 작성할 필요없이 저장리소스는 좀 먹지만 쿼리로 좋은 퍼포먼스를 내려고했다. 


{
        "_id" : ObjectId("5bf6498d91e3dcc3cbcbc0f2"),
        "PJ_board" : [
                {
                        "board_header" : "test",
                        "board_contents" : "test",
                        "board_userID" : "writer",
                        "board_date" : "2018.11.13",
                        "board_like" : 3,
                        "board_dislike" : 1
                }
        ]
}

위 형태가 현재 게시물을 저장하는 형태이다.

한 콜렉션 안에 배열이름으로 게시물들의 카테고리를 분류 해왔던것이다.


아무튼 아래처럼 인덱스를 설정하려했다

 db.board.createIndex({ "PJ_board.0.board_header" : "text", "FR_board.0.board_header" : "text", "ST_board.0.board_header" : "text", "ITnews_board.0.board_header" : "text" })
{
        "ok" : 0,
        "errmsg" : "namespace name generated from index name \"plugliquid.board.$PJ_board.0.board_header_text_FR_board.0.board_header_text_ST_board.0.board_header_text_ITnews_board.0.board_header_text\" is too long (127 byte max)",
        "code" : 67,
        "codeName" : "CannotCreateIndex"
}


그런데 이렇게 오류가 나는것이다. 에러 메세지를 보면 key값이 너무 길고, 최대 127 바이트라는것.

이것에 대해 구글링 해본결과: https://docs.mongodb.com/manual/reference/bson-types/


이렇게 되면 내가 직접 검색기능을 해야한다는것인데. 

"직접 만들면 되지 않냐?"

물론 jsp/servlet 에 작성할수있다 그런데 생각해보면 디비에서 처리할것을 서버에서 처리하면 웹반응속도가 떠러지고 자원 부담이 커질것같다.


그래서 지금 생각해둔것은 카테고리 별로 콜렉션을 따로 만들어서 사용하는것이 좋을것 같다.

반응형
Comments