Latest web development tutorials

MongoDB를 분석 개념

우리는 MongoDB의 기본 개념 기본 개념 중 하나를 배워야한다 어떤 데이터베이스를 알아 여부는 문서, 컬렉션, 데이터베이스, 여기에 우리가 하나 하나 소개하는 것입니다.

다음 표는 쉽게 개념 몽고의 일부를 이해하는 데 도움이 될 것입니다 :

SQL 용어 / 개념 MongoDB의 용어 / 개념 설명 / 설명
데이터베이스 데이터베이스 데이터베이스
테이블 수집 데이터베이스 테이블 / 컬렉션
문서 라인 데이터 기록 / 설명서
기둥 분야 데이터 필드 / 도메인
색인 색인 색인
테이블 조인 표 MongoDB를 지원하지 않는 조인
기본 키 기본 키 기본 키, 기본 키와 MongoDB를 자동으로 _id 필드

그림의 예에 따라, 우리가 할 수있는 몽고 몇 가지 개념의 직관적 이해 :


데이터베이스

MongoDB를 여러 데이터베이스를 만들 수 있습니다.

기본 데이터베이스 MongoDB의 데이터베이스는 데이터 디렉토리에 저장되고, "DB"이다.

여러 개의 독립적 인 데이터베이스를 수용 할 수 MongoDB를의 단일 인스턴스는, 권한 및 다른 데이터베이스의 자체적 각각은 서로 다른 파일에 저장됩니다.

"쇼 DBS는"명령은 모든 데이터의 목록을 표시합니다.

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> show dbs
local  0.078GB
test   0.078GB
> 

"dB"명령의 구현은 현재 데이터베이스 객체 또는 컬렉션을 표시합니다.

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> db
test
> 

명령을 "사용"을 실행, 특정 데이터베이스에 연결할 수 있습니다.

> use local
switched to db local
> db
local
> 

위의 명령, "로컬"의 예는 데이터베이스를 연결하려는 것입니다.

다음 장에서 우리는 구체적으로 명령 MongoDB를의 사용을 설명합니다.

데이터베이스는 이름으로 식별 될 수있다. 데이터베이스 이름은 다음 조건 UTF-8 스트링의 임의의 것일 수있다.

  • 그것은 빈 문자열 ( "")이 될 수 없습니다.
  • ''(공간)을 포함하지 않습니다., $, /, \와 \ 0 (널 유 푸).
  • 그것은 모두 소문자이어야한다.
  • 64 바이트까지.

일부 데이터베이스 이름은 예약되어 직접 이러한 데이터베이스는 특별한 역할을 액세스 할 수 있습니다.

  • 관리자 : "루트"데이터베이스입니다 권위의 관점에서. 데이터베이스에 사용자를 추가하는 경우, 사용자는 자동으로 모든 권한 데이터베이스를 상속합니다. 일부 특정 서버 측 명령은 그러한 모든 데이터베이스 나 서버의리스트로, 데이터베이스에서 실행할 수있다.
  • 로컬이 데이터를 복사하지 못할 것이다 단일 로컬 서버에 한정되는 임의의 컬렉션을 저장하는 데 사용될 수있다
  • 구성 : 단편화 몽고로 설정 될 때, 구성 데이터베이스 슬라이스 정보를 저장하기 위해 내부적으로 사용.

파일

문서 (예 BSON)의 키 (키 - 값)입니다. MongoDB의 문서가 동일한 필드와 동일한 필드가 제공 될 필요는 관계형 데이터베이스는 매우 다른 것이다 동일한 데이터 유형도 MongoDB를 매우 눈에 띄는 특징을 필요로하지 않는다.

다음과 같이 간단한 문서의 예는 다음과 같습니다

{"site":"www.w3big.com", "name":"本教程"}

다음 표는 RDBMS와 MongoDB를 해당 용어를 나열합니다 :

RDBMS MongoDB를
데이터베이스 데이터베이스
테이블 설정
파일
분야
공동 표 포함 된 문서
기본 키 기본 키 (MongoDB를이 _id에 대한 키를 제공)
데이터베이스 서비스와 클라이언트
mysqld를 / 오라클 mongod
mysql을 / SQLPLUS 몽고

그 참고 :

  1. 문서 키 / 값 쌍은 정렬됩니다.
  2. 문서는 여러 다른 데이터 유형 (또는 전체 포함 된 문서) 될 수있는 큰 따옴표 안에있는 문자열 값뿐만 아니라 수 있습니다.
  3. MongoDB의 종류와 구분을 구별한다.
  4. MongoDB를 문서 중복 키를 가질 수 없습니다.
  5. 주요 문서는 문자열입니다. 몇 가지 예외를 제외하고, 키는 UTF-8 문자를 사용할 수 있습니다.

명명 규칙 주요 문서 :

  • \ 0 (널 문자)를 포함 할 수 없습니다 키. 이 문자는 본드의 끝을 나타내는 데 사용된다.
  • . 그리고 $는 특정 상황에서 특별한 의미에서만 사용할 수있다.
  • 키의 시작 부분에 "_"밑줄 (엄격하게 요구하지 않음) 예약되어 있습니다.

설정

형태 : MongoDB를는 RDBMS (관계형 데이터베이스 관리 시스템 관계형 데이터베이스 관리 시스템)와 유사한 문서 컬렉션 기이다.

컬렉션, 데이터베이스에 서로 다른 형식과 유형의 데이터 컬렉션에 삽입 할 수 있다는 것을 의미없는 고정 된 구조의 컬렉션을 존재하지만, 일반적으로 우리는 어떤 관련성이있을 것이다 데이터 세트를 삽입합니다.

예를 들어, 우리는 모음으로 서로 다른 데이터 구조를 기록 할 수

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.w3big.com","name":"本教程","num":5}

컬렉션에 첫 번째 문서가 생성 될 때.

합법적 인 컬렉션 이름

  • 컬렉션 이름은 빈 문자열이 될 수 없습니다 "."
  • 설정 이름은 \ 0 문자 (널 문자)를 포함 할 수 없습니다,이 문자는 이름의 컬렉션의 끝을 나타냅니다.
  • 설정 이름은 "시스템."시스템 설정 접두사 예약되어 시작 부분에서 할 수 없습니다.
  • 사용자가 만든 컬렉션 이름은 예약 문자를 포함 할 수 없습니다. 일부 시스템에서 생성 된 컬렉션 문자를 포함하고 있기 때문에 일부 드라이버의 이름이 포함 된 컬렉션을 지원하는 수행이다. 당신이 만들어 이러한 시스템의 컬렉션에 액세스하려는 경우가 아니면 다른 내부 $ 이름에 표시되지 않습니다.

다음 예 :

db.col.findOne()

출장 컬렉션

출장 컬렉션은 고정 된 크기의 모음입니다.

그것은 고성능 특성을 갖는 큐 다소 유사한 "RRD"개념. (삽입의 순서에 따라 만료) 만료.

캡핑 모음 자동 고성능 객체를 유지하기 위해 삽입된다. 그것은 기능과 다른 유사한 표준 로그 수집에 이상적입니다, 당신은 명시 적으로 바이트 단위로 덮인 수집, 지정된 크기의 컬렉션을 만들 수 있습니다. 사전에 할당 된 데이터 저장 공간 값의 컬렉션.

이것은 헤더 정보를 포함하는 데이터베이스의 지정된 저장 크기 주목된다.

db.createCollection("mycoll", {capped:true, size:100000})
  • 출장 수집, 당신은 새 개체를 추가 할 수 있습니다.
  • 갱신 될 수 있지만, 객체는 저장 공간이 증가하지 않을 것이다. 당신이 증가하면 업데이트가 실패합니다.
  • 데이터베이스는 삭제를 허용하지 않습니다. 모든 행 컬렉션을 삭제 드롭 () 메서드를 사용합니다.
  • 참고 : 삭제 한 후, 사용자가 명시 적으로 컬렉션을 다시 만들어야합니다.
  • 32 비트 시스템에서 출장 컬렉션 (1 × 9) 바이트 최대 규모의 저장 1E9입니다.

메타 데이터

데이터베이스의 정보는 컬렉션에 저장됩니다. 그들은 네임 스페이스 시스템을 사용 :

dbname.system.*

MongoDB를 데이터베이스 네임 스페이스의 <DBNAME> .system * 다음과 같이 즉, 시스템 정보, 특별 컬렉션 (수집)의 다양한 포함되어 있습니다 :

컬렉션 네임 스페이스 기술
dbname.system.namespaces 모든 네임 스페이스를 나열합니다.
dbname.system.indexes 모든 인덱스를 나열합니다.
dbname.system.profile 이 데이터베이스 요약 (프로필) 정보가 포함되어 있습니다.
dbname.system.users 데이터베이스에 액세스 할 수있는 모든 사용자를 나열.
dbname.local.sources 그것은 말 (슬레이브) 서버 정보 및 상태의 복사본이 들어 있습니다.

컬렉션의 시스템 오브젝트는 다음과 같은 제한 사항이 수정합니다.

의 {{system.indexes}} 삽입 데이터에서는 인덱스를 생성 할 수 있습니다. 하지만, 그 테이블 정보 (특수 드롭 인덱스 명령은 자동으로 해당 정보를 업데이트한다) 불변이다.

{{System.users}}은 수정할 수 있습니다. {{System.profile는}} 삭제됩니다.


MongoDB의 데이터 유형

다음 표 MongoDB를 일반적으로 사용되는 여러 데이터 유형.

데이터 유형 기술
문자열입니다. 데이터를 저장하는 공통 데이터 유형을 사용 하였다. MongoDB를에서 UTF-8로 인코딩 된 문자열은 유효합니다.
정수 정수 값. 이 값을 저장하기 위해 사용된다. 사용중인 서버에 따라, 32 비트 또는 64 비트들로 분할 될 수있다.
부울 부울 값입니다. 부울 값 (참 / 거짓)를 저장하십시오.
더블 배정 밀도 부동 소수점 값입니다. 부동 소수점 값을 기억.
최소 / 최대 키 최소값과 값 BSON (바이너리 JSON) 소자와 상 대비의 최대 값.
배열 키에 대한 배열 또는 목록 또는 저장 여러 값에 대한.
타임 스탬프 타임 스탬프. 수정 또는 추가 기록은 특정 시간을 문서화합니다.
목적 포함 된 문서.
그것은 빈 값을 생성합니다.
상징 기호입니다. 이 데이터 형식은 문자열 형태와 실질적으로 동일하지만, 그 차이는 언어 입력 특수 기호의 사용을 위해 일반적으로 점이다.
날짜 날짜 시간. UNIX 시간 포맷은 현재 날짜 또는 시간을 저장하는 데 사용된다. 날짜 객체 생성 된 들어오는 날짜 정보를 : 당신은 당신의 자신의 날짜와 시간을 지정할 수 있습니다.
개체 ID 개체 ID. ID가 문서를 작성하는 데 사용.
이진 데이터 이진 데이터입니다. 이진 데이터를 저장.
코드 태그 유형. 자바 스크립트 코드는 문서를 저장하는 데 사용됩니다.
정규 표현식 정규 표현식 유형입니다. 정규 표현식을 저장하십시오.