1.emp collection 생성
>for (var i=1; i<=20; i++) db.emp.save({empno:i, empname:"test", sal:100})
>db.emp.find()
2.배열에 결과저장 배열에 저장되어 있는 내용출력
>var cur = db.emp.find()
>while(cur.hasNext()) printjson(cur.next())
3.배열의 특정 순번에 있는 내용출력
>var cur = db.emp.find()
>printjson(cur[10])
4.Date함수를 통해 현재 날짜 출력
>x=new Date()
5.x변수에 저장된 날짜를 문자열로 출력
>x.toString()
6.ISODate 함수를 통해 현재 날짜를 출력
>d=ISODate()
>d.getMonth()
>d.getYear()
>d.getDay()
7.Sequence Number 함수
>Function seq_no("name"){
var ret=db.seq_no.findAndModify(query:{_id:name},
update:{$inc:{next:1}},
"new"true, upsert:true});
return ret.next;
}
원리는 seq_no라는 함수형 collection을 만들어서 해당 _id 별로
+1씩 증가시킨 값을 리턴한다.
8.selec 문
/*select * from employees where empno=7369 */
>db.employees.find({empno:7369}).forEach(printjson)
/*select ename from employees where empno=7900*/
첫번째 인자 {empno:7900}은 where절이다.
두번째 인자 {ename:""}은 select 절이다.
>db.employees.find({empno:7900}, {ename:""}).forEach(printjson)
/*select ename,job from employees where empno=7900*/
>db.employees.find({empno:7900}, {ename:"", job:""}).forEach(printjson)
9.index 생성문과 select 문
>db.employees.ensureIndex({ename:1})
/*select empno, ename from employees where ename>='ALLEN' and ename<= 'SCOTT';*/
>db.employees.find({}, {_id:0, empno:1, ename:1}).min({ename:"ALLEN"}).max({ename:"SCOTT"})
/*SELECT EMPNO, ENAME, HIREDATE FROM EMPLOYEES WHERE DEPTNO>=20 AND DEPTNO<=30*/
>db.employees.ensureIndex({deptno:1})
>db.employees.find({$min : {deptno:20}, $max: {deptno:30}, $query:{}}, {_id:0,empno:1,ename:1,hiredate:1})
/*select empno, ename from employees where empno>7500 and empno<=7600*/
>db.employees.find({empno:{$gt:7500, $lte:7600}},{_id=0,empno:1,ename:1})
/*select empno, ename, from employees where empno=7782 or empno=7844*/
>db.employees.find({$or:[{empno:7782}, {empno:7844}]},{_id=0, empno:1, ename:1})
/*select count(*) from employees:*/
>db.employees.count()
/*select count(*) from employees where empno>7900*/
>db.employees.find({empno:{$gt:7900}}).count()
/*select distinct deptno from employees;*/
>db.employees.distinct("deptno");
/*select deptno, sum(sal) csum
from employees
where hiredate>="01-01-1980" and hiredate <= "31-12-1981"
group by deptno*/
>db.employees.group({key: {deptno:true},
cond: {"hiredate": {$gte: "01-01-1980", $lt:"31-12-1981"}},
reduce: function(obj,prev) {prev.csum += obj.sal;},
initial:{csum:0}
})
/*select ename, job from employees where deptno=10 order by ename desc*/
db.employees.find({deptno:10},{_id:0,ename:1,job:1}).sort(ename:-1)
RECENT COMMENT