54 몽고디비에서 DML 문장 작성하기
mongodb가 앞에서 배운 hive와 scalar와 다른점은 DML문이 가능하다는 것.
hive와 scalar는 데이터 하나를 변경하려면 다시 처음부터 csv파일의 데이터를 vi편집기로 변경해서 수정한 후에 hive에 로드해서 다시 테이블을 구성해야 합니다.
1. insert문
sql>
insert into emp(empno,ename,sal)
values(1111,'aaa',3000);
mongo>
db.emp.save({empno:1111,ename:"aaa",sal:3000})
db.emp.find()
2. update문
sql>
update emp
set sal = 9000
where ename = 'SCOTT';
mongo>
db.emp.update( {ename:'SCOTT'},{$set:{sal:9000}}, {multi:true} )
문제347. MARTIN의 직업을 ANALYST로 변경하시오.
mongo>
db.emp.update( {ename:'MARTIN'},{$set:{job:'ANALYST'}}, {multi:true} )
문제348. 직업이 SALESMAN인 사원들의 커미션을 8000으로 수정하시오.
db.emp.update( {job:'SALESMAN'},{$set:{comm:8000}}, {multi:true} )
db.emp.find()
3. delete문
db.emp.remove({deptno:30})
db.emp.find()
rollback이 따로 없음.
문제349. emp테이블 drop하고 다시 생성하시오.
mongo>
db.emp.drop()
[root@centos ~]# mongoimport --type csv -c emp --headerline --drop /home/oracle/emp.csv
2022-03-30T13:55:43.986+0900 connected to: localhost
2022-03-30T13:55:43.987+0900 dropping: test.emp
2022-03-30T13:55:44.071+0900 imported 14 documents
mongo>
db.emp.find()
문제350. 부서번호가 30번이 아닌 사원들을 삭제하시오.
db.emp.remove({deptno:{$ne:30}})
+) 몽고디비에서 행 제한해서 출력하기
mongo>
db.airline.aggregate([ {$match:{depdelay:{$gt:0}} },
{$group:{_id:"$month", count:{$sum:1}}},
{$sort:{count:1} },
{$limit:5}])
db.emp.find().limit(5)
문제351. 직업, 직업별 인원수를 출력하는데 맨 위에 2줄만 출력하시오.
db.emp.aggregate( {$group:{_id:"$job",count:{$sum:1}}},
{$limit:2} )
반응형
'Study > class note' 카테고리의 다른 글
딥러닝 / 텐서플로우 설치 (0) | 2022.03.31 |
---|---|
딥러닝 / 넘파이 (0) | 2022.03.30 |
하둡 / 몽고디비 GUI 툴 사용하기 (0) | 2022.03.30 |
하둡 / 몽고디비 설치 (0) | 2022.03.29 |
하둡 / 몽고디비 NoSQL 사용하기, csv파일 로드(리눅스os, 하둡) (0) | 2022.03.29 |