mongodb

brave_chicken·2024년 6월 7일

잇(IT)생 챌린지

목록 보기
64/90

몽고디비 설명서

https://www.mongodb.com/docs/v5.0/core/document/

https://www.mongodb.com/docs/compass/current/

mongodb - nosql

1. 데이터삽입

  • insert
  • insertMany
  • insertOne
db.emp.insert({id:"jang",name:"장동건"})

db.customer.insertOne({id:"jang",pass:"1234",name:"장동건",info:{city:["서울","인천","강릉"],
toeicjumsu:[700,800,650,850,855]}})

db.customer.insertMany([
	{id:"lee",pass:"1234",name:"이민호",info:{city:["천안","부산","제천"],toeicjumsu:[555,780,650,900,855]}},
	{id:"bts1",pass:"1234",name:"슈가",info:{city:["천안","부산","제천"],toeicjumsu:[555,780,650,900,855]}},
	{id:"bts2",pass:"1234",name:"석진",info:{city:["천안","부산","제천"],toeicjumsu:[450,500,558,850,950]}},
	{id:"bts3",pass:"1234",name:"뷔",info:{city:["천안","부산","제천"],toeicjumsu:[555,780,650,900,855]}}
])

2. 데이터조회

db.collection명.find(조건,조회할필드에 대한 정보)

                  ---- -------------------------
                  query     projection
  • query나 projection은 json으로 표기
  • 조회할 필드의 정보
    형식 : {필드명:1} {필드명:true} - 출력할 필드
    {}안에 아무 필드도 정의하지 않으면 전체 필드를 조회하겠다는 의미

1) 메소드

  • count() : 조회된 결과의 갯수를 출력
  • limit(숫자) : 숫자만큼 결과를 확인
  • sort({컬럼:1}) - 오름차순
  • sort({컬럼:-1}) - 내림차순

2) 조건이 일치하는 경우

  • json형식으로 조건을 명시
  • and나 or을 명시하지 않으면 조건은 기본이 and조건
    ex) addr이 인천인 데이터 조회(id,name,dept,addr만 조회)
db.score.find({addr:"인천"},{id:1,name:1,dept:1,addr:true})

3) 비교연산자

  • $lt (less than) : <
  • $gt(greater than):>
  • $lte(less than or equal): <=
  • $gte(greater than or equal) : >=
  • $in:하나의 필드에 조건을 여러 개 적용(오라클의 in연산자와 동일)
  • $nin:조건을 제외한 도큐먼트조회(오라클의 not in과 동일)
 db.컬렉션명.find({조회할필드:{연산자: 값}})
 
 ex) score컬렉션에서 java가 90점 이상인 document를 조회

	db.score.find({java:{$gte:90}},{})
                     	 --------
                       	   >=90
 
 and조건
 ex) 부서가 인사이면서 자바점수가 80점이상인 사원
    
    db.score.find({dept:"인사",java:{$gte:80}})

4) 논리연산자

  • $or : or조건
  • $and : and조건
  • 조건이 여러 개 이므로 배열로 조건을 표현한다.
  • 각각의 조건은 json 오브젝트로 표현
 ex)오류상황
   	db.score.find({$and:{dept:"인사",java:{$gte:80}}})
       
    오류해결
    db.score.find({$and:[{dept:"인사"},{java:{$gte:80}}]})
       
 	db.score.find({$or:[{id:"hong"},{id:"kang"},{id:"jang"}]})
       
	$in이용
     db.score.find({필드:{연산자:값}})
     db.score.find({id:{$in:["hong","kang","jang"]}})

C:\Users\주희>mongo
MongoDB shell version v5.0.26
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("730c7ad0-6ccb-403e-83b5-61cba838773a") }
MongoDB server version: 5.0.26
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
---
The server generated these startup warnings when booting:
        2024-06-04T16:12:36.934+09:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
sample  0.000GB
test    0.000GB

> use sample
switched to db sample

> db
sample

> show collections
test

> db.d
sample.d

> db.test.find()
{ "_id" : ObjectId("665ec215e02e883d121318d4"), "a" : 1 }

> db.test.v
db.test.validate(  db.test.valueOf(   db.test.verify(

> db.test.validate()
{
        "ns" : "sample.test",
        "nInvalidDocuments" : 0,
        "nrecords" : 1,
        "nIndexes" : 1,
        "keysPerIndex" : {
                "_id_" : 1
        },
        "indexDetails" : {
                "_id_" : {
                        "valid" : true
                }
        },
        "valid" : true,
        "repaired" : false,
        "warnings" : [ ],
        "errors" : [ ],
        "extraIndexEntries" : [ ],
        "missingIndexEntries" : [ ],
        "corruptRecords" : [ ],
        "ok" : 1
}

> db.test.r
db.test.reIndex(           db.test.remove(            db.test.renameCollection(  db.test.replaceOne(        db.test.runCommand(        db.test.runReadCommand(

> db.test.renameCollection("test2")
{ "ok" : 1 }

> show collections
test2
> db.emp.insert
db.emp.insert(      db.emp.insertMany(  db.emp.insertOne(

> db.emp.insertOne({id:"lee",pass:"1234",val:1000})
{
        "acknowledged" : true,
        "insertedId" : ObjectId("665fbca66664373c55011c2b")
}

> show collections
emp
test2

> db.c
db.changeUserPassword(  db.commandHelp(         db.constructor          db.createCollection(    db.createRole(          db.createUser(          db.createView(          db.currentOP(           db.currentOp(           db.currentOpCursor(     db.currentOpLegacy(

> db.createCollection("member",{capped:true,size:50000})
{ "ok" : 1 }

> show collections
emp
member
test2

> db.member.validate()
{
        "ns" : "sample.member",
        "nInvalidDocuments" : 0,
        "nrecords" : 0,
        "nIndexes" : 1,
        "keysPerIndex" : {
                "_id_" : 0
        },
        "indexDetails" : {
                "_id_" : {
                        "valid" : true
                }
        },
        "valid" : true,
        "repaired" : false,
        "warnings" : [ ],
        "errors" : [ ],
        "extraIndexEntries" : [ ],
        "missingIndexEntries" : [ ],
        "corruptRecords" : [ ],
        "ok" : 1
}

> db.member.drop()
true

> show collections
emp
test2



> db.emp.find()
{ "_id" : ObjectId("665fbca66664373c55011c2b"), "id" : "lee", "pass" : "1234", "val" : 1000 }

> db.emp.i
db.emp.initializeOrderedBulkOp(    db.emp.initializeUnorderedBulkOp(  db.emp.insert(                     db.emp.insertMany(                 db.emp.insertOne(                  db.emp.isCapped(

> db.emp.insertMany([{id:"jang",item:"프로젝트",image:"test.jpg"},{id:"kang",item:"project2",data:"info",price:1000}]);
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("665fbef46664373c55011c2c"),
                ObjectId("665fbef46664373c55011c2d")
        ]
}

> db.emp.find()
{ "_id" : ObjectId("665fbca66664373c55011c2b"), "id" : "lee", "pass" : "1234", "val" : 1000 }
{ "_id" : ObjectId("665fbef46664373c55011c2c"), "id" : "jang", "item" : "프로젝트", "image" : "test.jpg" }
{ "_id" : ObjectId("665fbef46664373c55011c2d"), "id" : "kang", "item" : "project2", "data" : "info", "price" : 1000 }

> db.emp.insert({id:"lee",val:20000})
WriteResult({ "nInserted" : 1 })

> db.emp.find()
{ "_id" : ObjectId("665fbca66664373c55011c2b"), "id" : "lee", "pass" : "1234", "val" : 1000 }
{ "_id" : ObjectId("665fbef46664373c55011c2c"), "id" : "jang", "item" : "프로젝트", "image" : "test.jpg" }
{ "_id" : ObjectId("665fbef46664373c55011c2d"), "id" : "kang", "item" : "project2", "data" : "info", "price" : 1000 }
{ "_id" : ObjectId("665fbf4a6664373c55011c2e"), "id" : "lee", "val" : 20000 }

> for(let i=1100;i<1120;i++){db.emp.insert({id:i,msg:"test"+i})}
WriteResult({ "nInserted" : 1 })

> db.emp.find()
{ "_id" : ObjectId("665fbca66664373c55011c2b"), "id" : "lee", "pass" : "1234", "val" : 1000 }
{ "_id" : ObjectId("665fbef46664373c55011c2c"), "id" : "jang", "item" : "프로젝트", "image" : "test.jpg" }
{ "_id" : ObjectId("665fbef46664373c55011c2d"), "id" : "kang", "item" : "project2", "data" : "info", "price" : 1000 }
{ "_id" : ObjectId("665fbf4a6664373c55011c2e"), "id" : "lee", "val" : 20000 }
{ "_id" : ObjectId("665fbf8a6664373c55011c2f"), "id" : 1100, "msg" : "test1100" }
{ "_id" : ObjectId("665fbf8a6664373c55011c30"), "id" : 1101, "msg" : "test1101" }
{ "_id" : ObjectId("665fbf8a6664373c55011c31"), "id" : 1102, "msg" : "test1102" }
{ "_id" : ObjectId("665fbf8a6664373c55011c32"), "id" : 1103, "msg" : "test1103" }
{ "_id" : ObjectId("665fbf8a6664373c55011c33"), "id" : 1104, "msg" : "test1104" }
{ "_id" : ObjectId("665fbf8a6664373c55011c34"), "id" : 1105, "msg" : "test1105" }
{ "_id" : ObjectId("665fbf8a6664373c55011c35"), "id" : 1106, "msg" : "test1106" }
{ "_id" : ObjectId("665fbf8a6664373c55011c36"), "id" : 1107, "msg" : "test1107" }
{ "_id" : ObjectId("665fbf8a6664373c55011c37"), "id" : 1108, "msg" : "test1108" }
{ "_id" : ObjectId("665fbf8a6664373c55011c38"), "id" : 1109, "msg" : "test1109" }
{ "_id" : ObjectId("665fbf8a6664373c55011c39"), "id" : 1110, "msg" : "test1110" }
{ "_id" : ObjectId("665fbf8a6664373c55011c3a"), "id" : 1111, "msg" : "test1111" }
{ "_id" : ObjectId("665fbf8a6664373c55011c3b"), "id" : 1112, "msg" : "test1112" }
{ "_id" : ObjectId("665fbf8a6664373c55011c3c"), "id" : 1113, "msg" : "test1113" }
{ "_id" : ObjectId("665fbf8a6664373c55011c3d"), "id" : 1114, "msg" : "test1114" }
{ "_id" : ObjectId("665fbf8a6664373c55011c3e"), "id" : 1115, "msg" : "test1115" }
Type "it" for more

> it
{ "_id" : ObjectId("665fbf8a6664373c55011c3f"), "id" : 1116, "msg" : "test1116" }
{ "_id" : ObjectId("665fbf8a6664373c55011c40"), "id" : 1117, "msg" : "test1117" }
{ "_id" : ObjectId("665fbf8a6664373c55011c41"), "id" : 1118, "msg" : "test1118" }
{ "_id" : ObjectId("665fbf8a6664373c55011c42"), "id" : 1119, "msg" : "test1119" }
  • 똑같은 데이터 만약 넣어도 _id가 달라서 삽입됨
> db.emp.find({id:"jang"},{})
{ "_id" : ObjectId("665fbef46664373c55011c2c"), "id" : "jang", "item" : "프로젝트", "image" : "test.jpg" }

미션

  1. mongo1day라는 이름으로 DB를 작성하세요
  2. customer라는 이름으로 collection을 작성하세요
  3. customer라는 collection에는 다음과 같은 성격의 필드를 갖고 저장될 수 있도록 임의의 데이터를 입력합니다.
    ==> document 5섯개
    id : 기본 아이디
    pass: 패스워드
    name : 성명
    info:{
    city :거주했던 지역[배열로 관리 - 기본 세 개 정도 입력하기]
    toeicjumsu: 토익점수[]로 다섯 개 정도 입력
    }
    city는 자유롭게 입력하시고 토익점수에 대한 배열은 다음과 같습니다.
    [700,800,650,850,855][555,780,650,900,855]
    [480,540,656,770,820][450,500,558,850,950]
    [700,800,860,870,890]
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
sample  0.000GB
test    0.000GB

> use mongo1day
switched to db mongo1day

> db.customer.insert({
...     id: "woo",
...     pass: "1234",
...     name: "변우석",
...     info: {
...         city: ["서울", "청주", "광주"],
...         toeicjumsu: [700, 800, 650, 850, 855]
...     }
... })
WriteResult({ "nInserted" : 1 })

> db.customer.insert({
...     id: "yoon",
...     pass: "1234",
...     name: "김혜윤",
...     info: {
...         city: ["서울", "인천", "세종"],
...         toeicjumsu: [555,780,650,900,855]
...     }
... })
WriteResult({ "nInserted" : 1 })

> db.customer.insert({
...     id: "jung",
...     pass: "1234",
...     name: "고윤정",
...     info: {
...         city: ["서울", "부천", "부산"],
...         toeicjumsu: [480,540,656,770,820]
...     }
... })
WriteResult({ "nInserted" : 1 })

> db.customer.insert({
...     id: "hong",
...     pass: "1234",
...     name: "홍길동",
...     info: {
...         city: ["서울", "울산", "전주"],
...         toeicjumsu: [450,500,558,850,950]
...     }
... })
WriteResult({ "nInserted" : 1 })

> db.customer.insert({
...     id: "kim",
...     pass: "1234",
...     name: "김말숙",
...     info: {
...         city: ["서울", "제주", "강릉"],
...         toeicjumsu: [700,800,860,870,890]
...     }
... })
WriteResult({ "nInserted" : 1 })

> db.customer.find()
{ "_id" : ObjectId("665fcc326664373c55011c43"), "id" : "woo", "pass" : "1234", "name" : "변우석", "info" : { "city" : [ "서울", "청주", "광주" ], "toeicjumsu" : [ 700, 800, 650, 850, 855 ] } }
{ "_id" : ObjectId("665fcc4f6664373c55011c44"), "id" : "yoon", "pass" : "1234", "name" : "김혜윤", "info" : { "city" : [ "서울", "인천", "세종" ], "toeicjumsu" : [ 555, 780, 650, 900, 855 ] } }
{ "_id" : ObjectId("665fcc7d6664373c55011c45"), "id" : "jung", "pass" : "1234", "name" : "고윤정", "info" : { "city" : [ "서울", "부천", "부산" ], "toeicjumsu" : [ 480, 540, 656, 770, 820 ] } }
{ "_id" : ObjectId("665fcc9a6664373c55011c46"), "id" : "hong", "pass" : "1234", "name" : "홍길동", "info" : { "city" : [ "서울", "울산", "전주" ], "toeicjumsu" : [ 450, 500, 558, 850, 950 ] } }
{ "_id" : ObjectId("665fccbe6664373c55011c47"), "id" : "kim", "pass" : "1234", "name" : "김말숙", "info" : { "city" : [ "서울", "제주", "강릉" ], "toeicjumsu" : [ 700, 800, 860, 870, 890 ] } }
>

> use sample
switched to db sample

> show collections
emp
test2

> db.score.insert({id:"hong",name:"홍길동",dept:"인사",addr:"서울",java:100,servlet:88})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"kim",name:"김민선",dept:"전산",addr:"인천",java:99,servlet:98})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"lee",name:"이문세",dept:"인사",addr:"인천",java:88,servlet:77})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"test",name:"테스트",dept:"총무",addr:"대구",java:97,servlet:80})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"park",name:"박수홍",dept:"인사",addr:"대구",java:56,servlet:98})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"jang",name:"장동건",dept:"총무",addr:"제주",java:77,servlet:100})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"kang",name:"강감찬",dept:"전산",addr:"제주",java:88,servlet:92})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"kkang",name:"강동원",dept:"전산",addr:"서울",java:98,servlet:82})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"jjang",name:"장길산",dept:"인사",addr:"인천",java:30,servlet:88})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"song",name:"송미미",dept:"전산",addr:"서울",java:90,servlet:55})
WriteResult({ "nInserted" : 1 })

> db.score.insert({id:"na",name:"나나나",dept:"인사",addr:"인천",java:100,servlet:100})
WriteResult({ "nInserted" : 1 })

> db.score.find()
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천", "java" : 30, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }

> db.score.find().count()
11

> db.score.find().limit(3)
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }

> db.score.find({},{id:1, name:1})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동" }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선" }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세" }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트" }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍" }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건" }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬" }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원" }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산" }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미" }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나" }

> db.score.find({},{id:true, name:true})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동" }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선" }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세" }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트" }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍" }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건" }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬" }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원" }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산" }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미" }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나" }

> db.score.find()
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천", "java" : 30, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }
> db.score.find().sort({java:1})
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천", "java" : 30, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }
> db.score.find().sort({java:-1})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천", "java" : 30, "servlet" : 88 }


> db.score.find().sort({java:-1}).limit(3)
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }

> db.score.find({dept:"전산"})
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }

> db.score.find({dept:"전산",addr:"서울"})
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }

addr이 인천인 데이터 조회(id,name,dept,addr만 조회)

> db.score.find({addr:"인천"},{id:1,name:1,dept:1,addr:true})
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천" }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천" }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천" }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천" }
> db.score.find({java:{$gte:90}},{})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }

부서가 인사이면서 자바점수가 80점이상인 사원

> db.score.find({dept:"인사",java:{$gte:80}})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }
> db.score.find({java:{$gte:80,$lte:90}}))}))
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
>
> db.score.find({$and:[{dept:"인사"},{java:{$gte:80}}]})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }

id가 hong,kang, jang인 데이터 조회하기

> db.score.find({$or:[{id:"hong"},{id:"kang"},{id:"jang"}]})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
> db.score.find({id:{$in:["hong","jang","kang"]}})
{ "_id" : ObjectId("665fd19a6664373c55011c48"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c4d"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("665fd19a6664373c55011c4e"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
> db.score.find({id:{$nin:["hong","jang","kang"]}})
{ "_id" : ObjectId("665fd19a6664373c55011c49"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4a"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("665fd19a6664373c55011c4b"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("665fd19a6664373c55011c4c"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }
{ "_id" : ObjectId("665fd19a6664373c55011c4f"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("665fd19a6664373c55011c50"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천", "java" : 30, "servlet" : 88 }
{ "_id" : ObjectId("665fd19a6664373c55011c51"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("665fd19e6664373c55011c52"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }

미션

  1. exam collection에서 이름과 주소와 servlet점수를 출력해보자
  2. exam collection에서 java점수 중 70점 이상을 출력해보자
  3. exam collection에서 이름, java점수를 출력하고 java가 90점 이상인 사람만 출력해보자
  4. exam에서 dept가 인사이면서 addr이 안양이거나 대구인 document 출력
  5. servlet이 70에서 90사이이며 dept가 총무인 document 조회
> show dbs
admin      0.000GB
config     0.000GB
local      0.000GB
mongo1day  0.000GB
sample     0.000GB
test       0.000GB

> use exam
switched to db exam

> db.exam.insert({id:"hong",name:"홍길동",dept:"인사",addr:"서울",java:100,servlet:88})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"kim",name:"김민선",dept:"전산",addr:"인천",java:99,servlet:98})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"lee",name:"이문세",dept:"인사",addr:"인천",java:88,servlet:77})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"test",name:"테스트",dept:"총무",addr:"대구",java:97,servlet:80})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"park",name:"박수홍",dept:"인사",addr:"대구",java:56,servlet:98})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"jang",name:"장동건",dept:"총무",addr:"제주",java:77,servlet:100})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"kang",name:"강감찬",dept:"전산",addr:"제주",java:88,servlet:92})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"kkang",name:"강동원",dept:"전산",addr:"서울",java:98,servlet:82})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"jjang",name:"장길산",dept:"인사",addr:"인천",java:30,servlet:88})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"song",name:"송미미",dept:"전산",addr:"서울",java:90,servlet:55})
WriteResult({ "nInserted" : 1 })
> db.exam.insert({id:"na",name:"나나나",dept:"인사",addr:"인천",java:100,servlet:100})
WriteResult({ "nInserted" : 1 })

> db.exam.find()
{ "_id" : ObjectId("666002666664373c55011c53"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("666002666664373c55011c54"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("666002666664373c55011c55"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("666002666664373c55011c56"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("666002666664373c55011c57"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }
{ "_id" : ObjectId("666002666664373c55011c58"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("666002666664373c55011c59"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("666002666664373c55011c5a"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("666002666664373c55011c5b"), "id" : "jjang", "name" : "장길산", "dept" : "인사", "addr" : "인천", "java" : 30, "servlet" : 88 }
{ "_id" : ObjectId("666002666664373c55011c5c"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("666002696664373c55011c5d"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }

> db.exam.find({},{servlet:1,name:1,addr:1})
{ "_id" : ObjectId("666002666664373c55011c53"), "name" : "홍길동", "addr" : "서울", "servlet" : 88 }
{ "_id" : ObjectId("666002666664373c55011c54"), "name" : "김민선", "addr" : "인천", "servlet" : 98 }
{ "_id" : ObjectId("666002666664373c55011c55"), "name" : "이문세", "addr" : "인천", "servlet" : 77 }
{ "_id" : ObjectId("666002666664373c55011c56"), "name" : "테스트", "addr" : "대구", "servlet" : 80 }
{ "_id" : ObjectId("666002666664373c55011c57"), "name" : "박수홍", "addr" : "대구", "servlet" : 98 }
{ "_id" : ObjectId("666002666664373c55011c58"), "name" : "장동건", "addr" : "제주", "servlet" : 100 }
{ "_id" : ObjectId("666002666664373c55011c59"), "name" : "강감찬", "addr" : "제주", "servlet" : 92 }
{ "_id" : ObjectId("666002666664373c55011c5a"), "name" : "강동원", "addr" : "서울", "servlet" : 82 }
{ "_id" : ObjectId("666002666664373c55011c5b"), "name" : "장길산", "addr" : "인천", "servlet" : 88 }
{ "_id" : ObjectId("666002666664373c55011c5c"), "name" : "송미미", "addr" : "서울", "servlet" : 55 }
{ "_id" : ObjectId("666002696664373c55011c5d"), "name" : "나나나", "addr" : "인천", "servlet" : 100 }

> db.exam.find({java:{$gte:70}})
{ "_id" : ObjectId("666002666664373c55011c53"), "id" : "hong", "name" : "홍길동", "dept" : "인사", "addr" : "서울", "java" : 100, "servlet" : 88 }
{ "_id" : ObjectId("666002666664373c55011c54"), "id" : "kim", "name" : "김민선", "dept" : "전산", "addr" : "인천", "java" : 99, "servlet" : 98 }
{ "_id" : ObjectId("666002666664373c55011c55"), "id" : "lee", "name" : "이문세", "dept" : "인사", "addr" : "인천", "java" : 88, "servlet" : 77 }
{ "_id" : ObjectId("666002666664373c55011c56"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }
{ "_id" : ObjectId("666002666664373c55011c58"), "id" : "jang", "name" : "장동건", "dept" : "총무", "addr" : "제주", "java" : 77, "servlet" : 100 }
{ "_id" : ObjectId("666002666664373c55011c59"), "id" : "kang", "name" : "강감찬", "dept" : "전산", "addr" : "제주", "java" : 88, "servlet" : 92 }
{ "_id" : ObjectId("666002666664373c55011c5a"), "id" : "kkang", "name" : "강동원", "dept" : "전산", "addr" : "서울", "java" : 98, "servlet" : 82 }
{ "_id" : ObjectId("666002666664373c55011c5c"), "id" : "song", "name" : "송미미", "dept" : "전산", "addr" : "서울", "java" : 90, "servlet" : 55 }
{ "_id" : ObjectId("666002696664373c55011c5d"), "id" : "na", "name" : "나나나", "dept" : "인사", "addr" : "인천", "java" : 100, "servlet" : 100 }

> db.exam.find({java:{$gte:90}},{name:1,java:1})
{ "_id" : ObjectId("666002666664373c55011c53"), "name" : "홍길동", "java" : 100 }
{ "_id" : ObjectId("666002666664373c55011c54"), "name" : "김민선", "java" : 99 }
{ "_id" : ObjectId("666002666664373c55011c56"), "name" : "테스트", "java" : 97 }
{ "_id" : ObjectId("666002666664373c55011c5a"), "name" : "강동원", "java" : 98 }
{ "_id" : ObjectId("666002666664373c55011c5c"), "name" : "송미미", "java" : 90 }
{ "_id" : ObjectId("666002696664373c55011c5d"), "name" : "나나나", "java" : 100 }

> db.exam.find({dept:"인사"},{addr:{in:["안양","대구"]}})
{ "_id" : ObjectId("666002666664373c55011c53"), "addr" : { "in" : [ "안양", "대구" ] } }
{ "_id" : ObjectId("666002666664373c55011c55"), "addr" : { "in" : [ "안양", "대구" ] } }
{ "_id" : ObjectId("666002666664373c55011c57"), "addr" : { "in" : [ "안양", "대구" ] } }
{ "_id" : ObjectId("666002666664373c55011c5b"), "addr" : { "in" : [ "안양", "대구" ] } }
{ "_id" : ObjectId("666002696664373c55011c5d"), "addr" : { "in" : [ "안양", "대구" ] } }


> db.exam.find({$and:[{dept:"인사"},{addr:{$in:["안양","대구"]}}]})
{ "_id" : ObjectId("666002666664373c55011c57"), "id" : "park", "name" : "박수홍", "dept" : "인사", "addr" : "대구", "java" : 56, "servlet" : 98 }


> db.exam.find({$and:[{dept:"총무"},{servlet:{$gte:70,$lte:90}}]})
{ "_id" : ObjectId("666002666664373c55011c56"), "id" : "test", "name" : "테스트", "dept" : "총무", "addr" : "대구", "java" : 97, "servlet" : 80 }

본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.

0개의 댓글