Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 디자인패턴
- tomcat
- #java
- 서블릿
- spring5
- 확장자 사라짐
- #jsp
- ServletContextListener
- Spring Boot
- servletContext
- 점사라짐
- @PathVariable
- Servelt
- spring security
- oauth
- jsp
- MVC
- servlet
- #페이지이동
- #sendRedirect()
- 웹 어플리케이션 감시
- Spring
- Container
- 한글 처리
- 서블릿 초기화 파라미터
- ServletConfig
- 데이터 공유
Archives
- Today
- Total
Choi의 고유결계
mongoDB 사용하다보니 생긴 불편한점 및 주의해야할점 본문
반응형
현재 나는 블로그를 만들고있는중이다 몽고디비를 활용하여 게시글을 저장하고 조회하는중이다.
지금은 게시물 검색을 구현하는중 $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 에 작성할수있다 그런데 생각해보면 디비에서 처리할것을 서버에서 처리하면 웹반응속도가 떠러지고 자원 부담이 커질것같다.
그래서 지금 생각해둔것은 카테고리 별로 콜렉션을 따로 만들어서 사용하는것이 좋을것 같다.
반응형
'DB > Mongo' 카테고리의 다른 글
MongoDB - 싱글톤에서 close() (0) | 2019.03.02 |
---|---|
MongoDB - 커넥션 풀 (Connection Pool) (0) | 2019.03.02 |
[java에서 MongDB 사용하기] - 2. 몽고디비 데이터값 가져오기 (0) | 2019.02.21 |