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 =============================
'데이터베이스' 카테고리의 다른 글
[MongoDB] GeoSpatial index를 이용해보기 (0) | 2018.06.30 |
---|---|
[MongoDB] MapReduce에 관한 정리 (0) | 2018.06.16 |
[Mybatis] root-context.xml 자료(Oracle) (0) | 2018.05.20 |
[Mybatis] pom.xml 자료(Oracle) (0) | 2018.05.20 |
MongoDB에 계정(유저) 추가하기 (0) | 2018.04.17 |