본문 바로가기
DB

[MongoDB] 셀렉트

by Yeoseungwon 2023. 11. 2.
728x90

 

 

DAO 에서 

logger.info("쿼리셀렉트"+query);

찍어보기 

 

대괄호 안에 있는 것 복사해서 DB에 find로 셀렉

find 말고 count 해보면 count 결과값이 나온다. 

 

쿼리문 적고 F5 누르면 됨 

 

 

 

 

 

 

( DAO 코드 )

public Map<String, Object> selectArticleList(BoardManageVO vo) {
		Map<String, Object> resultMap = new HashMap<>();
		List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();

		try {
			
			Query query = new Query();
			query.addCriteria(Criteria.where("del_yn").is("N"));
			query.addCriteria(Criteria.where("group_id").is(vo.getGroupId()));
			query.addCriteria(Criteria.where("board_id").is(vo.getBoardId()));
			
			if(vo.isNoticeUse()) {
				query.addCriteria(Criteria.where("notice_at").is(vo.getSearchNoticeAt()));
			}
			
			if(!vo.getSearchImportance().equals("")) {
				query.addCriteria(Criteria.where("importance").is(vo.getSearchImportance()));	
			}
			
			if(!vo.getSearchState().equals("")) {
				query.addCriteria(Criteria.where("state").is(vo.getSearchState()));	
			}
			
			// 개수
			long resultCnt = mongoTemplate.count(query, Map.class, BOARD_COLLECTION);
			
			Pagination pagination = new Pagination();
			// pageIndex, 총개수, 한 페이지에 출력할 게시물 수, 한 페이지에 출력할 페이지 번호의 수
			pagination.pageInfo(vo.getPageIndex(), SF_Utils.convertInteger(resultCnt), vo.getCntOnPage(), 10);
			vo.setPagination(pagination);
			
			int page = vo.getPageIndex();
			int skip = (page > 0 ? (page -1) : 0);
			int limit = vo.getPagination().getRecordCntOnPage(); // 한 페이지에 출력할 게시물 수
			Pageable pageable = PageRequest.of(skip, limit);
			query.with(pageable);
			resultMap.put("pagination", pagination);
			
			Sort sort = Sort.by("ntce_day").descending();
			Sort sort2 = Sort.by("reg_date").descending();
			query.with(sort).with(sort2);
			
			logger.info("selectQuery [" + BOARD_COLLECTION + "]");
			logger.info(query);
			logger.debug("*******************************************************");

			// 리스트
			List<Map> tmpList = mongoTemplate.find(query, Map.class, BOARD_COLLECTION);
			
			for (Map<String, Object> map : tmpList) {
				map.remove("_id");
				resultList.add(map);
			}
			
			resultMap.put("resultList", resultList);
			resultMap.put("resultCnt", resultCnt);
			
		} catch (Exception e) {

		}
		return resultMap;
	}
728x90