6 글 보임 - 1 에서 6 까지 (총 6 중에서)
-
글쓴이글
-
2023년 3월 7일 20:19 #71359
이순민참가자예를 들어 1번부터 10번까지의 글이 있을 때 5번을 삭제합니다. 그럼 5를 제외한 1~10번 글이 있겠죠. 게시판 목록화 했을 때 5번이 비어있으면 이상할 것 같습니다. 그래서 총게시물개수를 먼저 체크하고 글 번호를 1~총게시물개수로 부여할려고 했는데 새로 부여될 글 번호가 총게시물개수 + 1이라 11번이 아니라 10번을 받게 되는데 기존에 존재하는 10번 때문에 글 작성이 불가합니다. 목록화했을때 5번이 안보이는게 맞나요? 아니면 다른방법이 있을까요?
2023년 3월 8일 09:55 #71404
codingapple키 마스터DB에서 게시물 10개 가져오라고 하면 빈거 빼고 10개 가져옵니다 글삭제시 총게시물갯수를 -1 하지 맙시다
2023년 3월 8일 15:26 #71462
이순민참가자글삭제시 총게시물갯수를 -1을 하는 형태는 아니고 홈페이지 접속시 총게시물개수를 확인하여 업데이트하는 형식입니다. 페이지네이션 구현하다보니 그렇게 진행되었습니다. 그래서 게시물 5번을 삭제했을때 11개에서 10개로 게시물이 줄어들어 다음 글번호가 자동으로 11번이 부여됩니다. 어떤식으로 수정하면 글번호 꼬임이 없을까요..?
// 홈페이지로 이동 app.get('/', async function (요청, 응답) { var page = Number(요청.query.pageNum || 1); var perPage = Number(요청.query.perPage || 10);
var TotalPost; var totalPage; TotalPost = await db.collection('post').estimatedDocumentCount(); db.collection('counter').updateOne({ name: "게시물개수" }, { $set: { totalPost: TotalPost } }, function (에러, 결과) { // console.log('index에서 총게시물수 업데이트 완료') db.collection('post').find(). skip(perPage * (page - 1)). limit(perPage).toArray(function (에러, 퍼페이지결과) { totalPage = Math.ceil(TotalPost / perPage); 응답.render(__dirname + '/views/index.ejs', { totalPage: totalPage, posts: 퍼페이지결과, perPage: perPage }) }) }) }); //===========================
2023년 3월 8일 20:25 #71510
codingapple키 마스터estimatedDocumentCount 쓰지말고 글발행할 때 마다 직접 갯수 기록합시다 굳이 글번호 카운트안하고 _id 자동으로 부여되는거 써도 별문제 없습니다
2023년 3월 9일 18:29 #71638
이순민참가자게시글 삭제할때는 총게시물개수 -1을 안한다면 총게시물개수는 점점올라가고 실제 게시물숫자와는완전히 다른 값을 가지게 될 것 같습니다. 또한 불러온 게시물만큼 페이지 번호를 1,2,3 ... 부여해야하고 페이지 번호를 totalPage라고 할때 var totalPage = Math.ceil(TotalPost / perPage) 의 방식으로 구하는데 정확한 총게시물개수가 필요합니다. 그래서 estimatedDocumentCount를 쓰고자하는데 올바르지않은 방법일까요? 그렇다면 더 좋은 방법이 있을까요? 혹시 "글발행할 때 마다 직접 갯수 기록합시다." 라고 말씀하신 의미가 글 발행할 때마다 estimatedDocumentCount를 사용해서 실제 개수로 업데이트 시켜주라는 의미인가요? 현재는 글 작성하면 총게시물개수 1씩 증가 합니다
2023년 3월 9일 20:16 #71659
codingapple키 마스터숫자를 쓰고싶으면 강의처럼 글발행할 때 마다 글번호저장용 document에 기록해두는방법밖에 없습니다 아니면 글삭제시 삭제가 아니라 삭제한척만 해도 될수도요
-
글쓴이글
6 글 보임 - 1 에서 6 까지 (총 6 중에서)
- 답변은 로그인 후 가능합니다.