MongoDB 튜토리얼
MongoDB 시작하기
수색…
비고
- 모바일 응용 프로그램이 시장에 출시 된 이후 세계의 데이터가 엄청나게 증가하기 시작했습니다. 이 엄청난 양의 데이터는 전통적인 관계형 데이터베이스 인 SQL로 처리하는 것이 거의 불가능하게되었습니다. NoSQL 데이터베이스는 각 데이터에 대해 가변 개수의 열과 같이 더 많은 유연성이 제공되는 데이터를 처리하기 위해 도입되었습니다.
- MongoDB는 최고의 NoSQL 데이터베이스 중 하나입니다. 각 컬렉션에는 여러 JSON 문서가 들어 있습니다. JSON 문서에서 표현할 수있는 모든 데이터 모델은 MongoDB에 쉽게 저장 될 수 있습니다.
- MongoDB는 서버 - 클라이언트 데이터베이스입니다. 서버는 일반적으로 이진 파일로 실행
mongod
및 클라이언트와 함께 실행mongo
. - 다양한 철학적 및 실용적인 이유로 v.3.2 이전에는 MongoDB에 조인 작업이 없습니다. 그러나 Mongo 쉘은 javascript를 지원하므로 $ lookup을 사용할 수없는 경우 삽입하기 전에 javascript의 문서에 대한 결합 작업을 시뮬레이션 할 수 있습니다.
- 프로덕션 환경에서 인스턴스를 실행하려면 Operations Checklist 를 따르는 것이 좋습니다.
버전
번역 | 출시일 |
---|---|
3.4 | 2016-11-29 |
3.2 | 2015-12-08 |
3.0 | 2015-03-03 |
2.6 | 2014-04-08 |
2.4 | 2013-03-19 |
2.2 | 2012-08-29 |
2.0 | 2011-09-12 |
1.8 | 2011-03-16 |
1.6 | 2010-08-31 |
1.4 | 2010-03-25 |
1.2 | 2009-12-10 |
설치
MongoDB를 설치하려면 다음 단계를 따르십시오.
Mac OS의 경우 :
- Mac OS에는 수동 설치 또는 자작 (homebrew)의 두 가지 옵션이 있습니다.
- homebrew로 설치 :
- 터미널에 다음 명령을 입력하십시오.
$ brew install mongodb
- 터미널에 다음 명령을 입력하십시오.
- 수동 설치 :
최신 릴리스를 여기에서 다운로드 하십시오 . 적절한 파일을 다운로드했는지 확인하고 운영 체제 유형이 32 비트인지 64 비트인지 확인하십시오. 다운로드 한 파일의 형식은
tgz
입니다.이 파일이 다운로드 된 디렉토리로 이동하십시오. 그런 다음 다음 명령을 입력하십시오.
$ tar xvf mongodb-osx-xyz.tgz
xyz
대신 몇 가지 버전 및 시스템 유형 정보가 있습니다. 추출 된 폴더는tgz
파일과 동일한 이름입니다. 폴더 내부 하위 폴더 이름을 자신의 것bin
과 함께 여러 바이너리 파일을 포함 할mongod
와mongo
.기본적으로 서버는
/data/db
폴더에 데이터를 보관합니다. 그래서, 우리는 그 디렉토리를 생성하고 다음 명령을 갖는 서버를 실행해야합니다 :$ sudo bash # mkdir -p /data/db # chmod 777 /data # chmod 777 /data/db # exit
서버를 시작하려면 현재 위치에서 다음 명령을 제공해야합니다.
$ ./mongod
기본적으로 포트 27017에서 서버를 시작합니다.
클라이언트를 시작하려면 이전과 동일한 디렉토리를 갖는 새 터미널을 열어야합니다. 다음 명령은 클라이언트를 시작하고 서버에 연결합니다.
$ ./mongo
기본적으로
test
데이터베이스에 연결됩니다.connecting to: test
것과 같은 줄이 보이는 경우connecting to: test
. 그런 다음 MongoDB를 성공적으로 설치했습니다. 축하해! 이제 Hello World 를 테스트하여 자신감을 높일 수 있습니다.
Windows의 경우 :
최신 릴리스를 여기에서 다운로드 하십시오 . 적절한 파일을 다운로드했는지 확인하고 운영 체제 유형이 32 비트인지 64 비트인지 확인하십시오.
다운로드 한 바이너리 파일의 확장자는
exe
입니다. 그것을 실행하십시오. 설치 마법사가 프롬프트됩니다.다음을 클릭하십시오.
라이센스 계약에 동의하고 다음을 클릭합니다.
전체 설치를 선택 하십시오 .
설치를 클릭하십시오. 관리자의 허가를 묻는 창이 열릴 수도 있습니다. 예를 클릭하십시오.
설치 후 마침을 클릭하십시오.
이제 mongodb는
C:/Program Files/MongoDB/Server/3.2/bin
경로에 설치됩니다. 버전 3.2 대신에 다른 버전이있을 수 있습니다. 그에 따라 경로 이름이 변경됩니다.bin
디렉토리와 함께 여러 이진 파일이 포함mongod
와mongo
. 다른 폴더에서 실행하려면 시스템 경로에 경로를 추가하십시오. 그것을하기 위해서 :- 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성을 선택하십시오.
- 왼쪽 창에서 고급 시스템 설정 을 클릭하십시오.
- 고급 탭에서 환경 변수 ...를 클릭하십시오.
- 시스템 변수 섹션에서 경로 를 선택하고 편집 ...을 클릭하십시오.
- Windows 10 이전에는 세미콜론을 추가하고 위에서 주어진 경로를 붙여 넣으십시오. Windows 10에서 새 경로를 추가하는 새 단추가 있습니다.
- 확인을 클릭하여 변경 사항을 저장합니다.
이제
db
라는 하위 폴더가있는data
라는 폴더를 만들고 서버를 실행합니다.해당 명령 프롬프트를 시작하십시오. cmd에서 경로를 변경하거나 Shift 키와 Ctrl 키를 동시에 눌러 폴더 GUI의 빈 공간을 마우스 오른쪽 버튼으로 클릭 한 후 표시되는 명령 창 열기를 클릭 하십시오 .
서버를 시작하기위한 명령을 작성하십시오.
> mongod
기본적으로 포트 27017에서 서버를 시작합니다.
다른 명령 프롬프트를 열고 다음을 입력하여 클라이언트를 시작하십시오.
> mongo
기본적으로
test
데이터베이스에 연결됩니다.connecting to: test
것과 같은 줄이 보이는 경우connecting to: test
. 그런 다음 MongoDB를 성공적으로 설치했습니다. 축하해! 이제 Hello World 를 테스트하여 자신감을 높일 수 있습니다.
Linux의 경우 : Mac OS와 거의 동일하지만 일부 명령이 필요합니다.
- 데비안 기반 배포판 (
apt-get
) :MongoDB 저장소 키를 가져옵니다.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 gpg: Total number processed: 1\ gpg: imported: 1 (RSA: 1)
우분투 패키지 목록에 저장소 추가 16.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
우분투 14.04에서 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
패키지 목록을 업데이트하십시오.
$ sudo apt-get update
MongoDB를 설치하십시오.
$ sudo apt-get install mongodb-org
- Red Hat 기반 배포판의 경우 (
yum
사용) :당신이 선호하는 텍스트 편집기를 사용하십시오.
$ vi /etc/yum.repos.d/mongodb-org-3.4.repo
다음 텍스트를 붙여 넣습니다.
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
패키지 목록을 업데이트하십시오.
$ sudo yum update
MongoDB 설치
$ sudo yum install mongodb-org
- 데비안 기반 배포판 (
안녕하세요 세계
설치가 끝나면 mongo shell (클라이언트 터미널)에 다음 줄을 입력해야합니다.
> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
안녕하세요!
설명:
- 첫 번째 줄에는 기본 데이터베이스
test
와world
라는 컬렉션에{ key : value }
연결된 문서가 삽입되었습니다. - 두 번째 줄에서는 방금 삽입 한 데이터를 검색합니다. 검색된 데이터는
cur
라는 javascript 변수에 보관됩니다. 그런next()
함수를 사용하여 첫 번째이자 유일한 문서를 가져 와서x
라는 다른 js 변수에 보관했습니다. 그런 다음 키를 제공하는 문서의 값을 인쇄합니다.
보완 조항
SQL 용어 | MongoDB 이용 약관 |
---|---|
데이터 베이스 | 데이터 베이스 |
표 | 수집 |
개체 / 행 | 문서 |
기둥 | 키 / 필드 |
표 결합 | 임베디드 문서 |
기본 키 | 기본 키 (mongodb 자체에서 제공하는 기본 키 _id ) |
MongoDB에서 JavaScript 파일 실행
./mongo localhost:27017/mydb myjsfile.js
설명 :이 작업은 실행 myjsfile.js
A의 스크립트 mongo
에 연결 쉘 mydb
상의 데이터베이스 mongod
바이어 접근 할 경우 localhost
포트에 인터페이스 27017
. localhost:27017
은 mongodb
사용하는 기본 포트이므로 필수는 아닙니다.
또한 mongo
콘솔에서 .js
파일을 실행할 수 있습니다.
>load("myjsfile.js")
쉘에서 읽을 수있는 검색 결과를 출력하기
다음 세 가지 레코드를 수집 테스트에 추가합니다.
> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
우리가 찾기를 통해 그들을 볼 경우, 그들은 매우 못생긴 보일 것입니다.
> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
이 문제를 해결하고 읽을 수있게하려면 pretty () 함수를 사용하십시오.
> db.test.find().pretty()
{
"_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
"key" : "value1",
"key2" : "Val2",
"key3" : "val3"
}
{
"_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
"key" : "value2",
"key2" : "Val21",
"key3" : "val31"
}
{
"_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
"key" : "value3",
"key2" : "Val22",
"key3" : "val33"
}
>
몽고 셸 기본 명령
사용 가능한 모든 데이터베이스 표시 :
show dbs;
액세스 할 특정 데이터베이스를 선택하십시오 (예 : mydb
. 이미 존재하지 않으면 mydb
가 생성됩니다 :
use mydb;
데이터베이스에 모든 콜렉션을 표시하십시오. 먼저 콜렉션을 선택하십시오 (위 참조).
show collections;
데이터베이스와 함께 사용할 수있는 모든 기능 표시 :
db.mydb.help();
현재 선택한 데이터베이스를 확인하려면 db
명령을 사용하십시오.
> db
mydb
db.dropDatabase()
명령은 기존 데이터베이스를 삭제하는 데 사용됩니다.
db.dropDatabase()