Database/MongoDB 2011. 12. 26. 22:33
1. 서비스 시작
   - mongod.exe 를 통해 시작한다.
   - 인자없이 실행하면 기본 데이터 디렉토리로 c:\data\db, 포트로 27017번을 사용한다. ( 데이터 디렉토리가 없거나 쓰기 권한이 없으면 서버 시작 실패가 된다. )
   - 주 포트보다 1,000이 높은 포트에서 기본 HTTP 서버를 시작한다. 이는 웹브라우저를 열고 http://localhost:28017로 접속하면 관리정보를 볼 수 있다는 뜻이다.
   - 서버 실행중 ctrl + C 를 누르면 mongod를 안전하게 중지할 수 있다.

2. MongoDB 쉘
   - 커맨드라인에서 자바스크립트 쉘을 제공한다.
   - mongo 를 통해 실행을 시작한다.
   - 쉘은 시작 시 자동으로 MongoDB 서버에 접속을 시도하기 때문에 서버를 항상 먼저 시작해야한다.
   - 온전한 자바스크립트 해석기로 자바스크립트의 표준 라이브러리를 모두 사용할 수 있다.
   - 자바스크립트 함수 정의 및 호출도 할 수 있다.
   - 쉘은 엔터를 쳤을 때 구문이 완료되었는 지 감지하고, 완료되지 않았을 경우 다음 줄에서 명령어를 입력할 수 있게 해준다.

3. MongoDB 클라이언트
   - 쉘의 진수는 독자적으로 쓸 수 있는 MongoDB 클라이언트라는 데 있다.
   - 쉘이 시작될 때 MongoDB 서버의 test 데이터베이스에 연결하고 이 데이터베이스 연결을 전역 변수 db 에 할당한다.
   - 쉘에서는 주로 이 변수를 통해 MongoDB에 접근한다.
   - 쉘은 SQL 사용자에게 친숙한 문법을 제공한다. ( 자바스크립트와는 또 다른 )
   - 컬렉션은 db 변수를 통해 접근할 수 있다.

3. CRUD 작업
>post = {"title": "My Blog Post",
             "content": "Here's my blog post",
             "date": new Date() }

   - 생성 : db.blog.insert(post)
   - 조회 : db.blog.find(),    하나만 조회할 경우 findOne()
   - 갱신 : 두개의 매개 변수가 필요한다.
     1) 갱신하려는 문서를 찾는 조건
     2) 새로운 문서
>post.comments = []

    - db.blog.update( { title: "My Blog Post" }, post )
    - 삭제 : db.blog.remove( { title: "My Blog Post" } )
    - 문서삭제 : delete post.title;

4. 쉘 활용 팁
   - 쉘에서 help 를 입력하면 대부분의 API, 메서드 몸체등을 모두 살펴볼 수 있다. 생각안날때 자주 이용하자.
   - http://api.mongodb.org/js 에 방문하면 모든 자바스크립트 함수의 API 문서를 확인할 수 있다.

5. 메서드명과 중복되는 컬렉션 이름 얻기
   - MongoDB는 자바스크립트가 db 속성을 우선 찾고 없을 경우 컬렉션을 검색하기 때문에 자바스크립트 속성과 이름이 같을 경우 컬렉션에 접근할 수 없다.
   - getCollection() : 찾을 컬렉션명을 인자로 넘겨 컬렉션에 접근한다.
      db.getCollection("version");

6. for ~ in 문을 이용하여 서브컬렉션에 반복적인 작업 수행하기
>var collections = ["posts", "comments", "authors"];
   for ( i in collections ){
     doStuff(db.blog[collections[i]]);
   }

'Database > MongoDB' 카테고리의 다른 글

MongoDB 데이터형  (0) 2011.12.27
MongoDB 기본  (0) 2011.12.26
posted by kirhieyes
: