BigData/NoSQL/MongoDB (3)
MongoDB 서비스 설정 방법


※ 관리자 권한으로 명령 프롬프트를 실행해야 함

[명령 프롬프트 실행 후 명령어 입력]

echo logpath=C:\Program Files (x86)\MongoDB\log\my.log> "C:\Program Files (x86)\MongoDB\log\my.cfg"

echo dbpath=C:\Program Files (x86)\MongoDB\mydata>> "C:\Program Files (x86)\MongoDB\log\my.cfg"

sc.exe create MongoDB binPath= "\"C:\Program Files (x86)\MongoDB\bin\mongod.exe\" --service --config=\"C:\Program Files (x86)\MongoDB\log\my.cfg\"" DisplayName= "MongoDB" start= "auto"

Net start MongoDB

Net stop MongoDB


[관리도구] -> [서비스] 에서 아래와 같이 MongoDB가 서비스로 올라온 것을 확인한다.





신뢰할만한 mongoDB 매뉴얼 참조(Set up the MongoDB environment 부분) : http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/




'BigData > NoSQL/MongoDB' 카테고리의 다른 글

[MongoDB] 일반 DB와 MongoDB 차이점  (0) 2015.05.19
[NoSQL] 빅데이터 구축 및 분석이란?  (0) 2015.05.18
  Comments,     Trackbacks
[MongoDB] 일반 DB와 MongoDB 차이점

http://docs.mongodb.org/manual/reference/sql-comparison/




컬렉션을 생성한 다음 키에 대한 필드 이름의 조건


1. $로 시작할 수 없다.


2. 255 크기 내에 작성한다. 


3. 연산자를 포함할 수 없다.


4. null(공백)이 중간에 들어갈 수 없다.


5. 필드 이름은 하나의 컬렉션 내에서 유일한 값으로 존재한다.


6. 전체 문서의 크기가 16M 제한적이다(네트워크의 대역폭).


7. 만일 문서가 대용량(16M 이상)이면 GridFS api를 사용해서 구현한다.





문서에 대한 정보(외부적인 상태)


1. mongod.lock : 서버의 프로세스 ID를 저장한다.


2. 0 파일(.ns) : 메타데이터를 네임스페이스 단위로 저장한다.


3. 2번의 크기는 ns 16M를 넘을 수 없다. - 28000개의 네임스페이스 하나의 데이터베이스는 컬렉션과 색인의 개수를 최대 28000개를 생성할 수 있다.

   --nssize arg(=16) 사이즈는 늘일 수 있으나 16M 단위로 처리한다.


4. test.0(64M), test.1(128M) 등의 파일은 순수 데이터 파일을 저장한다. 파일의 용량은 2GB까지가 최대이다.


5. 몽고는 데이터저장소의 크기를 정적으로 관리한다.





ObjectId("555a97730bd89a172bb8ab26")

   555a9773 : 타임스탬프 <4byte> 1970.1.1 표준타임

   0bd89a : 서버ID <3byte> 서버측 식별자.

   172b : 프로세스ID <2byte>

   b8ab26 : 로컬카운터 <3byte>


   <문서에 컬렉션이 추가되거나 문서가 추가될때마다 ID가 생성되며 프로세스가 생성된 ID를 카운팅해서 관리한다.>


   - 색인키

   - 문서 자체에서 bson 타입으로 생성해서 자동 추가된다.

   - 중복없음

   - 메모리를 가장 적은 크기로 차지한다.






//user_id:"eeee",age:43,status:"g"


1. my의 user_id를 출력하자.

   db.my.find({},{user_id:1});

   db.my.find({user_id:1},{});


2. age, status를 출력하자.

   db.my.find({},{"age":1,"status":1});


3. status, user_id를 출력하자.

   db.my.find({},{"status":1,"user_id":1});


4. insert into my(user_id,age,status) values('fff',45,'A');

   db.my.insert({user_id:"fff",age:45,status:"A"});

   db.my.insert({user_id:"zzz",status:"B"});

   db.my.find();


5. status가 A인 것을 찾아라

   db.my.find({status:"A"});


6. status가 A인 것을 찾아 user_id, status만 출력해라

   db.my.find({status:"A"},{user_id:1,status:1});


7. select * from my where status!='A';

   db.my.find({status:{$ne:"A"}});


>>>8. select * from my where status='A' and age=50;

   db.my.find({status:"A",age=50});


9. select * from my where status='A'or age=50;

   db.my.find({$or:[{status:"A"},{age:50}]});


10. select * from my where age>25;

   db.my.find({age:{$gt:25}});


11. select * from my where age<25;

   db.my.find({age:{$lt:25}});


12. select * from my where age>25 and age<=50;

   db.my.find({age:{$gt:25,$lte:50}});


13. select * from my where user_id like '%bc%';

   db.my.find({user_id:/bc/});


14. select * from my where user_id like 'ff%';

   db.my.find({user_id:/^ff/});


15. select * from my where status='A' order by user id ASC;

   db.my.find({status:"A"}).sort({user_id:1});


16. select * from my where status='A' order by user id desc;

   db.my.find({status:"A"}).sort({user_id:-1});


17. select count(*) from my;

   db.my.count();

   db.my.find().count(); --해봐


18. select count(user_id) from my;

   db.my.count({user_id:1});

   db.my.count({user_id:{$exists:true}});

'BigData > NoSQL/MongoDB' 카테고리의 다른 글

MongoDB 서비스 설정 방법  (0) 2015.05.19
[NoSQL] 빅데이터 구축 및 분석이란?  (0) 2015.05.18
  Comments,     Trackbacks
[NoSQL] 빅데이터 구축 및 분석이란?


빅데이타 구축(리눅스, 하둡(O)을 이용한 작업)과 

빅데이타 분석(O) : 클라우드 클러스터링, DB 클러스터링, DB 샤딩(G), 맵퍼를 이용한 키워드 실시간 분석(G), 
분석표(그래프)(G) 정형화된 자료(sql)와 비정형화된 자료(no-sql)가 공존하는데 비정형화된 자료를 모두 모아 키워드로 분석한 후 실시간으로 서비스 되는 것을 말한다.



'BigData > NoSQL/MongoDB' 카테고리의 다른 글

MongoDB 서비스 설정 방법  (0) 2015.05.19
[MongoDB] 일반 DB와 MongoDB 차이점  (0) 2015.05.19
  Comments,     Trackbacks