몽고DB 튜토리얼login
몽고DB 튜토리얼
작가:php.cn  업데이트 시간:2022-04-21 17:49:03

MongoDB 개념 분석


어떤 데이터베이스를 공부하든 기본 개념을 익혀야 합니다. MongoDB의 기본 개념은 Document, Collection, Database에 대해 하나씩 소개하겠습니다.

다음 표는 Mongo의 일부 개념을 더 쉽게 이해하는 데 도움이 됩니다.

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins 表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

아래 예를 통해 Mongo의 일부 개념을 보다 직관적으로 이해할 수도 있습니다.


데이터베이스

mongodb 여러 데이터베이스가 가능함 생성되었습니다.

MongoDB의 기본 데이터베이스는 "db"이며 데이터 디렉터리에 저장됩니다.

MongoDB의 단일 인스턴스는 각각 고유한 컬렉션과 권한을 갖는 여러 개의 독립 데이터베이스를 수용할 수 있으며, 서로 다른 데이터베이스도 서로 다른 파일에 배치됩니다.

"show 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" 명령을 실행하세요.

> use local
switched to db local
> db
local
>

위의 예시 명령에서 "local"은 연결하려는 데이터베이스입니다.

다음 장에서는 MongoDB에서의 명령어 사용법을 자세히 설명하겠습니다.

데이터베이스는 이름으로도 식별됩니다. 데이터베이스 이름은 다음 조건을 충족하는 UTF-8 문자열일 수 있습니다.

  • 은 빈 문자열("")일 수 없습니다.

  • 에는 ' '(공백), ., $, / 및 권한 관점에서 볼 때 이는 "루트" 데이터베이스입니다. 이 데이터베이스에 사용자가 추가되면 해당 사용자는 자동으로 모든 데이터베이스 권한을 상속받습니다. 모든 데이터베이스 나열 또는 서버 종료와 같은 특정 서버 측 명령은 이 데이터베이스에서만 실행할 수 있습니다.

  • local:
  • 이 데이터는 복사되지 않으며 단일 로컬 서버로 제한된 모든 컬렉션을 저장하는 데 사용할 수 있습니다.
구성

: 샤딩 설정에 Mongo를 사용하는 경우 구성 데이터베이스는 샤드에 대한 정보를 저장하기 위해 내부적으로 사용됩니다.

  • 문서

    문서는 키-값 쌍(예: BSON)입니다. MongoDB 문서는 동일한 필드를 가질 필요가 없으며 동일한 필드가 동일한 데이터 유형일 필요는 없습니다. 이는 관계형 데이터베이스와 매우 다르며 MongoDB의 매우 두드러진 기능이기도 합니다.
  • 간단한 문서 예는 다음과 같습니다.

    {"site":"www.php.cn", "name":"php中文网"}
    다음 표에는 RDBMS 및 MongoDB에 해당하는 용어가 나열되어 있습니다.

    다음 사항에 유의해야 합니다.

    1. 문서의 키/값 쌍은 순서가 지정됩니다.

    2. 문서의 값은 큰따옴표 안의 문자열일 뿐만 아니라 다른 여러 데이터 유형(또는 포함된 전체 문서)일 수도 있습니다.

    3. MongoDB는 유형과 대소문자를 구분합니다.

    4. MongoDB 문서는 중복 키를 가질 수 없습니다.

    5. 문서의 키는 문자열입니다. 몇 가지 예외를 제외하고 키는 임의의 UTF-8 문자를 사용할 수 있습니다.

    문서 키 명명 규칙:

    • 키에는 다음을 포함할 수 없습니다. 표준 컬렉션과 달리 제한 컬렉션은 명시적으로 생성해야 합니다. 컬렉션 크기를 바이트 단위로 지정합니다. 컬렉션의 데이터 저장 공간 값은 미리 할당됩니다.

    • 지정된 스토리지 크기에는 데이터베이스 헤더 정보가 포함된다는 점에 유의해야 합니다.

    • {"site":"www.baidu.com"}
      {"site":"www.google.com","name":"Google"}
      {"site":"www.php.cn","name":"php中文网","num":5}

    • 제한된 컬렉션에 새 개체를 추가할 수 있습니다.

    업데이트는 가능하지만 개체가 저장 공간을 늘리지는 않습니다. 증가하면 업데이트가 실패합니다.

    데이터베이스 삭제가 허용되지 않습니다. 컬렉션의 모든 행을 삭제하려면 drop() 메서드를 사용합니다.

  • 참고: 삭제 후 컬렉션을 명시적으로 다시 생성해야 합니다.

  • 32비트 시스템에서 제한된 컬렉션의 최대 저장 용량은 1e9(1X109)바이트입니다.


메타데이터

데이터베이스 정보는 컬렉션에 저장됩니다. 시스템 네임스페이스를 사용합니다:

db.col.findOne()

MongoDB 데이터베이스에서 네임스페이스 <dbname>.system.*은 다음과 같이 다양한 시스템 정보를 포함하는 특수 컬렉션(Collection)입니다.

集合命名空间描述
dbname.system.namespaces列出所有名字空间。
dbname.system.indexes列出所有索引。
dbname.system.profile包含数据库概要(profile)信息。
dbname.system.users列出所有可访问数据库的用户。
dbname.local.sources包含复制对端(slave)的服务器信息和状态。

시스템 컬렉션의 개체 수정에는 다음과 같은 제한 사항이 있습니다.

인덱스를 생성하려면 {{system.indexes}}에 데이터를 삽입하세요. 그러나 그렇지 않으면 테이블 정보는 변경할 수 없습니다(특별한 drop index 명령은 관련 정보를 자동으로 업데이트합니다).

{{system.users}}는 수정 가능합니다. {{system.profile}}은 제거 가능합니다.


MongoDB 데이터 유형

다음 표는 MongoDB에서 일반적으로 사용되는 몇 가지 데이터 유형을 보여줍니다.

数据类型描述
String字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
Integer整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
Boolean布尔值。用于存储布尔值(真/假)。
Double双精度浮点值。用于存储浮点值。
Min/Max keys将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
Arrays用于将数组或列表或多个值存储为一个键。
Timestamp时间戳。记录文档修改或添加的具体时间。
Object用于内嵌文档。
Null用于创建空值。
Symbol符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
Object ID对象 ID。用于创建文档的 ID。
Binary Data二进制数据。用于存储二进制数据。
Code代码类型。用于在文档中存储 JavaScript 代码。
Regular expression正则表达式类型。用于存储正则表达式。

PHP 중국어 웹사이트