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)

'mongoDB' 카테고리의 다른 글

mongoDB 2.1.2 이상에서 제공되는 함수  (0) 2013.03.13
mongoDB 명령어  (1) 2013.03.08
by pacino.kang 2013. 3. 11. 17:45