![](https://blog.kakaocdn.net/dn/rQjBt/btrnrjxtZBC/xEzeiNj5jH9C14phEvVRnK/img.png)
mongo
![](https://blog.kakaocdn.net/dn/pnWuH/btrnvArua4v/RCsWtOjsKYZKEqlKnfOXj0/img.png)
cmd창에서 몽고디비를 사용하기위해 mongo 명령을 사용합니다
( 몽고디비가 설치 되어있어야합니다 )
db
![](https://blog.kakaocdn.net/dn/JS14M/btrnxl1pus7/jrRiDmbb6GUqDrBSw80eC0/img.png)
db명령어로 어떤 db가 들어있는지 볼수있습니다.
db.jstest.insertOne({name:'test',
age:100,
class:'qclass'})
![](https://blog.kakaocdn.net/dn/bKxVHk/btrnrcycH2y/acjSGKtUAsEfXMY9LKIwK0/img.png)
insertOne은 하나의 데이터를 삽입하는 함수입니다.
기본적으로 db.컬렉션.함수 형태로 명령을 입력하는데 컬렉션은 존재 하지 않을경우 자동으로 생성됩니다.
삽입에 성공하면 위처럼 외계어처럼 뭔가가 나오네요!
db.jstest.find()
![](https://blog.kakaocdn.net/dn/cEGQaH/btrnwyGIZsh/D190OuVxKKx4EbT0mFKfb1/img.png)
find()함수를 이용해서 해당 컬렉션에 들어있는 모든 값을 볼수 있습니다.
show collections
![](https://blog.kakaocdn.net/dn/GEx2K/btrnvox3Bc4/ziAgg6hCTlACV6cz5i8aWK/img.png)
show collections 명령은 존재하는 collection들을 볼수있습니다.
db.jstest.insertOne({name:'test', class:'rclass', color: 'greendldy!'})
![](https://blog.kakaocdn.net/dn/mgBF2/btrnv3mDikO/tA60688wy8lMZoL5WkgjNk/img.png)
데이터를 하나더 삽입해보겠습니다.
db.jstest.find()
![](https://blog.kakaocdn.net/dn/d94w4D/btrns2POqnj/BISMAI3N8T4EBxOwgkhWsk/img.png)
모든 데이터가 다 나옵니다!
var cursor = db.jstest.find()
cursor
cursor
![](https://blog.kakaocdn.net/dn/b72T6f/btrnvz0ppu6/68sndgG7ZQdekOkKxZSBG1/img.png)
명령을 변수에 저장해놓고 변수로 실행할수도 있습니다!
대신 이러한 변수는 1회용으로 한번 실행되면 다시 실행되지않네요
var today = new Date()
today
![](https://blog.kakaocdn.net/dn/bfmeMY/btrnvBjFF6Q/eC7JCAJbwI75gr3vps1Al0/img.png)
JavaScript처럼 사용할수 있기때문에 자바스크립트의 함수도 사용할수 있습니다.
db.qclass.insertOne({name:'hong-gd', class:'qclass', kor: 100, eng: 100, math: 50})
![](https://blog.kakaocdn.net/dn/SnhMX/btrnpNMBP0r/vehFKAsC9P9nIiav5Oiytk/img.png)
다른 컬렉션으로 데이터를 다시 삽입해보겠습니다.
db.qclass.find()
![](https://blog.kakaocdn.net/dn/bXKXgF/btrnvArua3B/UzkyuENpQVKkoyvSKuR4P1/img.png)
잘 출력이 됩니다!
var lee = {name: 'lee-ss',
midterm:{kor: 70, eng: 90, math: 100},
final:{kor: 100, eng: 90, math: 100},
class:'qclass'}
db.qclass.insertOne(lee)
db.qclass.find()
![](https://blog.kakaocdn.net/dn/kKQbU/btrns3Bdfce/gMxUwC0cRSgnQy7H3Lda1k/img.png)
변수로 담아놓고 변수를 insert할수도 있습니다.
그러면 해당 변수에 담겨있는 데이터를 실행합니다.
db.qclass.insertMany([
{name:'kim-sd', class:'qclass', kor: 100, eng: 100, math: 100},
{name:'kang-hd', class:'qclass', midterm:{kor:50, eng: 20, math:50}}
])
db.qclass.find()
![](https://blog.kakaocdn.net/dn/btumTw/btrnrjYAtEG/BNCOwWhfE6KMQQVepHrGk1/img.png)
insertMany는 한번에 어려 데이터를 삽입할때 사용됩니다.
여러데이터를 삽입하는데 insertOne을 사용하면 에러가 발생합니다.
-- RDB : INSERT INTO QCLASS(name, kor, eng, math) VALUES('shin-dy', 100, 80, 40)
-- SQL의 뭐리문으로 입력하면 실행되는 위의 명령을 qclass collection에 저장하자.
db.qclass.insertOne({name:'shin-dy', kor: 100, eng: 80, math: 40})
db.qclass.find()
![](https://blog.kakaocdn.net/dn/bhLymb/btrnv3fSrG3/QwkqrcKmKF3C4lxftHHzj0/img.png)
가능 하시다면 위의 주석만 보고 해당 명령을 작성할수 있도록 해보세요!
db.qclass.insertOne({_id:1, name:'y-js', class:'qclass'})
![](https://blog.kakaocdn.net/dn/yF45O/btrnpOxYES2/vQ5TqIPhXFgzAS94MMFkl0/img.png)
-- SELECT * FROM QCLASS WHERE NAME = 'y-js';
db.qclass.find({name:'y-js'})
![](https://blog.kakaocdn.net/dn/dl0TWD/btrnv1WGRiT/paxw9Sj1RJOokxLD791IWk/img.png)
RDB의 문법으로는 위의 주석과 같은데 name이 y-js인 것들만 출력합니다.
조건이 붙는것입니다.
db.qclass.find({}, {name:1})
db.qclass.find({}, {_id:0, name:1})
db.qclass.find({}, {_id:0, name:1, midterm:1})
![](https://blog.kakaocdn.net/dn/U2eps/btrnxlf2C0G/yW2kolnkqYP1d0NOtd4Y8k/img.png)
_id:0을 포함할경우 id값은 출력되지않습니다.
RDB에서 어떤 컬럼을 출력할지 묻는것과 같습니다.
앞에 나온 비어있는 {}는 바로 아래에서 다루겠습니다.
db.qclass.find({midterm:{$exists: true}}, {_id:0, name:1, midterm:1})
![](https://blog.kakaocdn.net/dn/cGhtId/btrnvoSmWAi/zzVUP814FrfAVh2HGDD3DK/img.png)
$exists:true로 인해서 midterm가 있는 데이터만 찾아옵니다.
앞서 나온 {}은 조건이고 단일로 조건만 쓰일경우 모든 컬럼을 다 찾아온다는 의미와 같습니다.
'NoSQL > MongoDB' 카테고리의 다른 글
[MongoDB] 몽고디비 데이터 출력시 조건걸기 (0) | 2022.04.21 |
---|---|
[MongoDB] 몽고디비 데이터 수정(update), 삭제(delete) (0) | 2022.04.20 |
[MongoDB] 몽고디비 함수 sort(), limit(), skip() (0) | 2022.04.19 |
[MongoDB] 몽고디비(MongoDB) 설치하기 (0) | 2022.04.17 |