MongoDB를 이용하여 시퀀스와 게시판 페이징처리 및 CRUD(Create, Read, Update, Delete)를

할 수 있는 쿼리를 만들어 보았다.



============================= Query =============================

// 시퀀스 생성

db.system.js.save(

{_id:"seq_no",

  value:

 function (name) {

      // findAndModifty

     var ret = db.seq_no.findAndModify(

    {query:{_id:name},update:{$inc:{next:1}}, 

      new:true, upsert:true})

    return ret.next; 

 } 


})

// db.loadServerScripts()를 

// 이용해서 로드해서 사용하세요.

db.loadServerScripts()

seq_no("board_seq")


// 검색과 페이지 처리가 안된 전체 데이터 불러오기

db.board.find()


db.seq_no.find()


// 게시판 쓰기

//seq_no("board_seq")를 사용하려면 작성 스크립스를 올려서 사용해야한다.

db.loadServerScripts()


db.board.insert({_id:seq_no("board_seq"),title:"test java board",content:"board",

writer:"작성자",writeDate:new Date(), hit:0})


//게시판 글보기

db.board.findOne({_id:16})


//게시판 글리스트 - content 제외

// .find({조건},{출력할 컬럼})

db.board.find({},{title:1,writer:1,writeDate:1,hit:1})

//게시판 글리스트 -페이지 처리

//1. 정렬 -최근글이 앞으로 오도록 sort({필드:1}) - 필드로 오름차순 정렬,

//   {필드:-1}-필드로 내림차순 정렬

//2. 이전페이지(페이지-1)까지는 skip 시킨다.

db.board.find({},{title:1,writer:"writer",writeDate:1,hit:1})

.sort({writeDate:-1})

.skip((1-1)*2)

.limit(2)

// 전체 글의 갯수

db.board.count()

db.board.find()

db.board.find({})

db.board.find({},{writer:1})


// title 중에서 java라는 글자가 포함되어 있는 데이터.

db.board.find({title:/java/})

// ^test : test라는 글자로 시작하는, 5873$ : 5873으로 끝나는 

db.board.find({title:/^test/})


// 게시판 글 수정

//1. 조건에 맞는 데이터 가져오기

board = db.board.findOne({_id:13})

// 가져온 데이터 확인

board

//2. 가져온 데이터를 수정한다.

board.content = "데이터 베이스 관리 프로그램 중에 하나 Oracle사에서 제작"

//3. 수정된 내용을 db에 적용한다.

db.board.save(board)


// 게시판 데이터 삭제

db.board.remove({_id:12})

============================= Query =============================

+ Recent posts