검색결과 리스트
mongoDB에 해당되는 글 3건
- 2013.03.13 mongoDB 2.1.2 이상에서 제공되는 함수
- 2013.03.11 mongoDB select문
- 2013.03.08 mongoDB 명령어 1
/*select count(*) from employees*/
>db.employees.aggregate([{$group:{_id:null, count:{$sum:1}}}])
/*select sum(sal) from employees*/
>db.employees.aggregate([{$group:{_id:"$deptno",total:{$sum:"$sal"}}}])
/*select deptno,sum(sal) from employees where sal=3000 group by deptno*/
>db.employees.aggregate([{$match:{sal:3000}}, {$group:{_id:"deptno", total:{$sum:"$sal"}}}])
/*deptno가 10인 데이터를 조회*/
>db.employees.find({deptno:{$all:[10]}},{_id:0, empno:1,ename:1,sal:1})
/*deptno가 10이고 deptno가 30인 데이터를 조회*/
>db.employees.find({deptno:{$all:[10,30]}},{_id:0, empno:1,ename:1,sal:1})
>db.employees.find({$and:[{deptno:10},{deptno:30}]},{_id:0, empno:1,ename:1,sal:1})
/*deptno가 10이거나 deptno가 30인 데이터를 조회*/
>db.employees.find({deptno:{$in:[10,30]}},{_id:0, empno:1,ename:1,sal:1})
>db.employees.find({$or:[{deptno:30},{deptno:10}]},{_id:0, empno:1,ename:1,sal:1})
/*comm field가 존재하는 데이터만 조회하라*/
db.employees.find({comm:{$exists:true}},{_id:0,empno:1,ename:1})
mongoDB select문 (0) | 2013.03.11 |
---|---|
mongoDB 명령어 (1) | 2013.03.08 |
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 2.1.2 이상에서 제공되는 함수 (0) | 2013.03.13 |
---|---|
mongoDB 명령어 (1) | 2013.03.08 |
1. 데이터베이스가 생성될 물리적 경로생성
c:\>mkdir c:\MONGODB\test
2. mongoDB 버전 확인
>mongod --version
3. mongoDB 인스턴스 활성화
>mongod --dbpath c:\mongodb\test
-- mogodb shell프로그램 실행
>mongo
4.test 데이터베이스로 이동할때
>use test
5. 데이터베이스 목록 출력
>show dbs
6. 데이터베이스 상태확인
>db.stats()
7. 데이터베이스 shutdown
admin 영억으로 이동후에 셧다운 해야함.
>use admin
>db.shutdownServer()
8. 데이터베이스 로그아웃
>db.logout()
9.collection 생성
capped:true이면 해당 익스텐트를 모두 사용하게되면
처음부터 재 사용할 수 있는 데이터 구조를 생성할 때
size 해당 Collection의 최초 생성크기
>db.createCollection("emp",{capped:false, size:8192});
10. colection list보기
show collections
11. collection의 현재상태 및 정보분석
>db.emp.validate();
12.collection의 이름변경
>db.emp.renameCollection("employee")
13.Collection의 삭제
>db.employee.drop();
14.collection에 데이터 INSERT
>db.emp.insert({eno:1101,fname:"JIMMY"});
15.collection에 데이터 UPDATE
>db.emp.update({eno:1101},{$set:{fname:"JOO"}});
16.collection에 데이터 SELECT
>db.emp.find().sort({eno:-1});
17.도큐먼트(row)부터 정의하고 collection 생성
>m={ename : "smith"}
>n={ename : 1101}
>db.things.save(m)
>db.things.save(n)
>db.things.find()
>db.things.insert({ empno : 1102, ename:"king"})
18.for문을 이용한 증감된 값을 Collection에 insert
>for(var n=1103; n<=1120; n++) db.things.save({n:n, m:"test"+n})
19.db.things.find()로 조회시 리스트가 20 row가 넘는 경우 다음 페이지를 보고싶을때
>it
mongoDB 2.1.2 이상에서 제공되는 함수 (0) | 2013.03.13 |
---|---|
mongoDB select문 (0) | 2013.03.11 |
RECENT COMMENT