Home [macOS][mongoDB] Community Edition 시작해보기
Post
Cancel
Preview Image

[macOS][mongoDB] Community Edition 시작해보기

이번에는 mongoDBmacOS에 설치해보겠다.

왜 갑자기 이렇게 많이 설치하냐고 물어본다면… 설치하는데는 이유가 없다.

설치하기

철저하게 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/를 따라서 했다.

더이상 손 볼 곳이 없었다.

유의사항은 Intel processorsApple M1 processors 각각에 대해서 모두 설명해주기 때문에,

혼동하지 말자.

설정하기

설정 파일의 위치는 다음과 같다.

1
/usr/local/etc/mongod.conf

아마 설정할 때에는 기본 포트를 변경하려고 했으나…

확인해보니 겹칠 일이 없었다.

바꾸고 싶으면 실행할 때 --port로 하거나, 설정 파일을 손보면 된다.

Default MongoDB Port에 대한 정보는 https://docs.mongodb.com/manual/reference/default-mongodb-port/를 확인하면 되는데,

어차피 더 적을 것도 없으니 여기에 적어놓겠다.

기본 포트설명
27017mongod, mongos 인스턴스의 기본 포트
port, --port로 변경가능하다.
27018mongodshardsvr설정과 함께 실행했을 경우 기본 포트
27019mongodconfigsvr설정과 함께 실행했을 경우 기본 포트

서비스 실행 및 종료하기

mariaDB와 마찬가지로, brew services를 사용하면 편하다.

1
2
3
4
5
# 실행하기
brew services start mongodb-community@4.4

# 종료하기
brew services stop mongodb-community@4.4

역시 귀찮아서 단축키는 아래과 같이 설정했다.

1
2
3
4
# Mongo DB

alias mongodb-start='brew services start mongodb-community@4.4'
alias mongodb-stop='brew services stop mongodb-community@4.4'

SQL 과 MongoDB 매핑

SQL to MongoDB Mapping Chart를 보면 대부분 알 수 있다.

데이터베이스데이터베이스 그대로이고, 테이블컬렉션으로 매핑되었다는 것만 기억하면 되겠다.

데이터베이스 생성하기

먼저 터미널에서 mongo를 입력해서 MongoDB shell로 들어가보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ mongo
MongoDB shell version v4.4.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("40dc3a8c-c430-4565-8ef1-28327847af0f") }
MongoDB server version: 4.4.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
	https://community.mongodb.com
---
The server generated these startup warnings when booting:
        2021-03-25T23:39:48.158+09:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>

그 뒤, 클러스터 내의 모든 데이터베이스를 확인하려면 다음 명령어를 실행하면 된다.

1
2
3
4
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

admin, local은 모든 MongoDB 클러스터에 있는 데이터베이스들이다.

이제 데이터베이스를 하나 생성해보자.

1
2
> use tags
switched to db tags

생성되었는지 확인하기 위해서 다시 show dbs를 해보자.

1
2
3
4
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

엥…? 없다…

그럼 어떻게 해야하지?

현재 database 이름을 확인하려면 다음과 같이 치면 된다.

1
2
3
4
> db.getName()
tags
> db
tags

데이터베이스 삭제하기

그런데 내가 원한 database 이름은 tags가 아니었다.

이제 삭제를 해보자.

삭제를 하려면 다음과 같이 하면 된다.

1
2
> db.dropDatabase()
{ "ok" : 1 }

만약 database안에 값들이 있었다면 다음과 같이 보인다.

1
2
> db.dropDatabase()
{ "dropped" : "tags", "ok" : 1 }

데이터베이스에 컬렉션 생성하고, 값 추가하기

이제 db1이라는 이름을 만들고, tags라는 컬렉션에 값을 추가해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> use db1
switched to db db1
> db.getName()
db1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> db.tags.insert({name: "공지", items: {}})
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
db1     0.000GB
local   0.000GB

생성된 collections를 확인하려면 다음과 같이 치면 된다.

1
2
> show collections
tags

입력한 값을 확인하고 싶다면 다음과 같이 치면 된다.

1
2
3
4
5
6
7
8
9
10
> db.tags.findOne()
{
	"_id" : ObjectId("605f33dd2eac00736df12d03"),
	"name" : "공지",
	"items" : {

	}
}
> db.tags.find()
{ "_id" : ObjectId("605f33dd2eac00736df12d03"), "name" : "공지", "items" : {  } }

References

This post is licensed under CC BY 4.0 by the author.

[IntelliJ] spring-boot-devtools 사용해보기

[Travis CI] 특정 폴더에만 적용시키기