336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
제한자
@ $inc 제한자
- 값 증가 : $inc
- 사용 용도: 게시글 조회수 증가, 사용자 Point 증감, 시퀀스 등등
- 시퀀스 만들기
- > db.createCollection("seq") // 시퀀스 문서만 담을 컬렉션 생성
- { "ok" : 1 }
- > var seq = {“name” : “post”, “val" : 0} // 시퀀스 객체 생성
- > db.seq.insert(seq) // 시퀀스 문서 생성
- WriteResult({ "nInserted" : 1 })
- >
- 시퀀스 값 증가시키기
- > db.seq.update({"name" : "post"}, {"$inc" : {"val" : 1}}) // $inc 제한자를 이용해 값 1 증가시키기
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- >
- 증가값 가져오기
- > db.seq.findOne({"name" : "post"})
- { "_id" : ObjectId("56258f1ec8677ca2752803cf"), "name" : "post", "val" : 1 }
- >
@ $set 제한자
- 값 증가 : $set
- 사용 용도 : 필드 추가 (필드가 없을 경우) 및 필드 값 수정(필드 존재)
- “최근에본 영화” 추가 ( 추가 입력은 불가능)
- > db.user.update({"id" : "mcjang"}, {"$set" : {"latestSeenMovie" : "추격자"}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.user.findOne({"id" : "mcjang"})
- {
- "_id" : ObjectId("56259382c8677ca2752803d0"),
- "id" : "mcjang",
- "password" : "1234",
- "name" : "MCJANG",
- "latestSeenMovie" : "추격자"
- }
- >
- “최근에본 영화” 수정
- > db.user.update({"id" : "mcjang"}, {"$set" : {"latestSeenMovie" : "미니언즈"}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.user.findOne({"id" : "mcjang"})
- {
- "_id" : ObjectId("56259382c8677ca2752803d0"),
- "id" : "mcjang",
- "password" : "1234",
- "name" : "MCJANG",
- "latestSeenMovie" : "미니언즈“ // 데이터가 추가되지 않고 수정된다.
- }
- >
@ $upset 제한자
- Field와 값을 모두 삭제함
- “최근에본 영화” 삭제
- > db.user.update({"id" : "mcjang"}, {"$unset" : {"latestSeenMovie" : 1}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.user.findOne({"id" : "mcjang"})
- {
- "_id" : ObjectId("56259382c8677ca2752803d0"),
- "id" : "mcjang",
- "password" : "1234",
- "name" : "MCJANG"
- }
- >
@ $push 제한자
- $set 제한자와 같은 역할. 단, Field 가 존재할 경우 요소를 배열 끝에 추가한다.
- “최근에본 영화” 등록
- > db.user.update({"id" : "mcjang"}, {"$push" : {"latestSeenMovie" : "베테랑"}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.user.findOne({"id" : "mcjang"})
- {
- "_id" : ObjectId("56259382c8677ca2752803d0"),
- "id" : "mcjang",
- "password" : "1234",
- "name" : "MCJANG",
- "latestSeenMovie" : [
- "베테랑"
- ]
- }
- >
@ $pull 제한자
- 요소를 제거함
- “최근에본 영화” 중 베테랑 제거
- > db.user.update({"id" : "mcjang"}, {"$pull" : {"latestSeenMovie" : "베테랑"}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.user.findOne({"id" : "mcjang"})
- {
- "_id" : ObjectId("56259382c8677ca2752803d0"),
- "id" : "mcjang",
- "password" : "1234",
- "name" : "MCJANG",
- "latestSeenMovie" : [
- "치외법권"
- ]
- }
- >
- 포스트에 댓글을 여러 개 등록하고 그 중 하나 삭제하기
- 시퀀스 증가
- > db.seq.update({"name" : "post"}, {"$inc" : {"val" : 1}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > var seq= db.seq.findOne({"name" : "post"})
- > seq
- { "_id" : ObjectId("56258f1ec8677ca2752803cf"), "name" : "post", "val" : 1 }
- > seq.val
- 1
- >
- 포스트에 댓글을 여러 개 등록하고 그 중 하나 삭제하기
- Post 등록
- > varpost = {
- ... "id" : seq.val,
- ... "subject" : "MongoDB!",
- ... "content" : "Awesome!",
- ... "author" : "mcjang"
- ... }
- > db.post.insert(post);
- WriteResult({ "nInserted" : 1 })
- > db.post.findOne({"id": 1})
- {
- "_id" : ObjectId("5625b57510aca55475b7f880"),
- "id" : 1,
- "subject" : "MongoDB!",
- "content" : "Awesome!",
- "author" : "mcjang"
- }
- >
- 댓글 등록
- > db.post.update({"id" : 1}, {"$push" : { "replies" : {"id" : 1 ,"author" : "guest", "content" : "^^" }}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.post.findOne({"id" : 1})
- {
- "_id" : ObjectId("5625b57510aca55475b7f880"),
- "id" : 1,
- "subject" : "MongoDB!",
- "content" : "Awesome!",
- "author" : "mcjang",
- "replies" : [
- {
- "id" : 1,
- "author" : "guest",
- "content" : "^^"
- }
- ]
- }
- >
- 포스트에 댓글을 여러 개 등록하고 그 중 하나 삭제하기
- Id가 2번인 댓글 삭제하기
- > db.post.update({"id" : 1}, {"$pull" : {"replies" : {"id" : 2 }}})
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.post.findOne({"id" : 1})
- {
- "_id" : ObjectId("5625bbf80bcfc3fab5842c74"),
- "id" : 1,
- "subject" : "MongoDB!",
- "content" : "Awesome!",
- "author" : "mcjang",
- "replies" : [
- {
- "id" : 1,
- "author" : "guest",
- "content" : "^^"
- }
- ]
- }
- >
@ $Save - 자주 사용
- 갱신입력 : $set과 동일한 역할이지만, 더 간단하게 사용할 수 있음.
- > var post = db.post.findOne({"id" : 1})
- > post.pageview= 1;
- 1
- > db.post.save(post)
- WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- > db.post.findOne({"id" : 1})
- {
- "_id" : ObjectId("5625bbf80bcfc3fab5842c74"),
- "id" : 1,
- "subject" : "MongoDB!",
- "content" : "Awesome!",
- "author" : "mcjang",
- "replies" : [
- {
- "id" : 1,
- "author" : "guest",
- "content" : "^^"
- }
- ],
- "pageview" : 1
- }
- >
'[ Developer ] > MongoDB' 카테고리의 다른 글
[MongoDB] Function 이용해 Data 넣기 (0) | 2016.06.24 |
---|---|
[MongoDB] $push 제한자 이용한 값 넣기 (0) | 2016.06.24 |
[MongoDB] 몽고디비 수정 Update (0) | 2016.06.23 |
[MongoDB] 몽고디비 데이터 삭제 Remove (0) | 2016.06.23 |
[MongoDB] 몽고디비 Insert (0) | 2016.06.22 |