반응형

환경: docker, mongo 5.0.9

 

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.

docker-compose.yml 에 아래와 같이 설정하여 docker-compose up 명령어로 실행 시..

db client tool에서는 아래와 같이 접속을 시도해야한다.

mongodb://nhn:nhn@localhost:3307

유저를 주지 않으면 authentication 에러가 나고, 잘못된 포트를 주면 connection 에러가 난다..

 An error occurred while loading instance info: command hostInfo requires authentication
connect ECONNREFUSED 127.0.0.1:27017

여기서 헷갈렸던 부분이 포트인데, yml에는 3307:27017 이렇게 적혀있어서 왜 저렇게 쓰는지 의문이었는데,

앞 포트(3307)은 외부 노출 포트고 뒤 포트(27017)는 컨테이너 포트인 것 같다.

Expose ports.
Either specify both ports (HOST:CONTAINER), or just the container port (a random host port will be chosen).

어쨋건 mongoDB의 내용을 더 편하게 볼 수 있는 클라이언트(mongo compass)까지 확인 완료.

mongo compass

위 내용은 intellij에서도 확인가능하며 콘솔 명령어로도 조회할 수 있어 더 편리한 것 같다.

intellij

 

mongo db 간단 명령어

# mongo 접속
mongo -u nhn -p nhn

# 현재 로그인 정보
db.runCommand({connectionStatus: 1})

# db list
show dbs
# db change
use webflux
# see table
show tables
= show collections

# table을 collection이라고 부름에 주의
# chat table 조회
db.chats.find()

 

아래 명령어가 정리된 문서가 있는데, collection에 실제 콜랙션 이름을 넣어야 한다. collection은 일반 dbms의 테이블과 같은 용도이다.

https://www.mongodb.com/docs/manual/reference/mongo-shell/

 

mongo Shell Quick Reference — MongoDB Manual

Docs Home → MongoDB ManualYou can retrieve previous commands issued in the mongo shell with the up and down arrow keys. Command history is stored in ~/.dbshell file. See .dbshell for more information.The mongo shell can be started with numerous options.

www.mongodb.com

 

그리고 보다보니 find와 aggregate가 비슷해 보였는데(일반 select절의 where문과 같이 필터링하는 역할) 깊이 보면 차이가 있는 듯하다.

https://secretartbook.tistory.com/21

 

[MongoDB] 확장 검색 쿼리 - Aggregation의 목적 및 작동방식

MongoDB의 Find명령으로는 데이터를 그룹핑해서 특정 조건에 일치하는 도큐먼트의 개수를 확인한다거나 하는 복잡한 처리는 수행할 수 없었다. MongoDB의 Aggregation은 FIND 명령으로는 처리할 수 없는

secretartbook.tistory.com

아직 실제로 막 써보지 않아서 와닿지는 않는다.


https://blog.silnex.kr/dockerdocker-compose-%EC%A0%95%EB%A6%AC/

 

[Docker]docker-compose 정리

Docker Compose 여러 docker를 한번에 up(setup)할때 사용하는 방법이다. yml 파일을 사용하며, docker-compose up명령어로 실행하여 사용할 수 있다. TL;DR version: '{버전}' services: {도커 이름}: driver: {네트워크 이

blog.silnex.kr

 

728x90
반응형

+ Recent posts